此代码给出了一个“未结合的错误”Python的范围错误
x=3
def f():
print x
x+=3
这样做的原因(在此查询Python variable scope error讨论)(如在答案给出)是一旦赋值运算符已被使用的“x”成为一个局部变量,因为“X”没有连接到它的值,一个不能被3 增加它可是看看这个代码
x=3
def f():
print x
x=3
这一次,它似乎并不认为“X”确实有一个值,因此不应该有任何问题,但相同的错误occ URS。
UnboundLocalError: local variable 'x' referenced before assignment
如果python在阅读'x = 3'语句后已经创建了一个局部变量'x',那么它为什么不打印'x'?
这也是有趣在这里,这段代码不会产生错误
x=3
def f():
print x
x
的出来是“3”(当f()被调用)
这混淆了我很多,”不是个注意这次也'x'在'f()'内部声明,那么不应该python添加这个'x'到它的局部变量列表?
Python编译您在函数中使用的变量名称列表。这里'x'将被使用,所以它已经为它“保留”了空间,但它未被分配。 –