x=5
def printx()
print x
x=10运行此命令会出现未绑定的本地错误
但是当我的函数只是print x时,我没有得到错误..
发布于 2011-02-05 02:43:06
简单地为函数中的x赋值就是使其成为局部变量,从而隐藏上一行中指定的全局x = 5。在您试图打印x的代码行中,x的本地版本还没有初始化。在后面的行上做一些事情是如何影响它之前的行的,这是很奇怪的,但这就是它的工作方式。
你不需要任何特殊的声明来读取一个全局变量,因此它不需要在函数内部赋值。但是,如果您更愿意将10赋值给全局x,而不是创建一个新的本地x,则必须在函数内部指定global x。
https://stackoverflow.com/questions/4901687
复制相似问题