我一直在做测试,试图理解这里的文档中写了什么
https://docs.python.org/3/tutorial/classes.html#python-scopes-and-namespaces
我注意到,如果一个函数使用一个未在本地定义的变量,它将使用父范围中设置的变量。但是,如果该函数稍后在函数中设置该变量,它将决定不能使用父作用域中设置的变量并终止
下面的第一个函数起作用,第二个函数不起作用
def printthingy():
print(foo)
#foo = 'goodbye world'
def printthinghy2():
print(foo)
foo = 'goodbye world'
foo = 'hi world'
printthingy()
printthinghy2()
我希望函数在能够找到foo进行打印方面表现一致。相反,第一个函数起作用,第二个函数给出“赋值前引用的局部变量‘foo’”错误
了解局部变量和全局变量。在Python中,默认情况下,在函数中分配的每个变量都被视为局部变量,否则被视为全局变量。因此,第一次工作是因为
foo
被认为是全局的,第二次崩溃是因为它被认为是本地的,但在第一次访问时还没有被分配相关问题 更多 >
编程相关推荐