Python(我使用2.7)中有一些东西在困扰着我(ha!)。这是我得到NameError: global name 'x' is not defined
当我运行这段代码:Python:在函数之间使用变量
def function1():
x = 1
return 0
def function2():
function1()
print(x)
return 0
function2()
这不是对我来说是严重的问题,但我真的很好奇,为什么这不能打印1.这是有道理的,右在我心中流。定义变量x
的函数在调用之前被定义,并且该函数在print(x)
之前被调用。我真的没有看到为什么这个代码不起作用。也许我想这个的方式是有缺陷的。无论哪种方式,为什么不打印1?先谢谢您的帮助!
词法范围界定:http://en.wikipedia.org/wiki/Scope_(computer_science)#Lexical_scoping_vs._dynamic_scoping – uselpa
我改变了标题,因为我意识到有点太迟了,这很容易让人误解。抱歉!并感谢所有伟大的答案。 – Mikeureko