|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
代码1:这样可以调用函数打印出外部变量var的值等于5。
var = 5
def inside():
print(var)
inside()
代码2:这样也可以调用函数打印出内部变量var的值等于3.
var = 5
def inside():
var = 3
print(var)
inside()
代码3:这样就报错,原因是外部变量var这个时候被屏蔽,内部变量var没被赋值前你就想打印,所以不行。
var = 5
def inside():
print(var)
var = 3
inside()
对于新手,对于代码3我很疑惑,既然代码2能执行(代码2和3就是两个语句顺序颠倒一下)而且在代码3报错的时候都说了var这个内部变量没有被赋值前不能打印,那我理解为顺序还是你先走的打印,赋值代码在后面。
那既然创建和赋值内部变量的代码在后面,那为什么程序不能先理解这个var还是外部变量而打印出5呢?而非要报错呢,报错说明这个内部变量已经被创建了,但是还没有被赋值,那如果执行了var=3的语句,就应该同时创建并赋值了啊,怎么会分开?我非常混乱了。。。。。希望大家帮帮我。。。脑子碎了。
对他不管你外面有没有全局变量,先看里面的,里面如果没有再找外面的。
|
|