我是 Python 的初学者,并且已经处理过全局变量的概念。当我以为我理解了这个概念时,我看到了一段简短的代码,证明我错了:
message="global"
def enclosure():
message="enclosure"
def local():
global message
message="local"
local()
print(message)
print(message)
enclosure()
print(message)
其输出是:
global
enclosure
local
我不明白,为什么第二个输出是 Enclosure,因为当您调用 Enclosure 函数时,在该函数中调用 funciton local,其中全局变量消息设置为“local”,然后根据我的理解应该打印在调用封装函数时最后输出(所以我期望全局、本地、本地..)。
那么我的思维错误在哪里呢?
当你分配message="enclosure"
in enclosure
,你做了message
该范围的局部变量。嵌套函数改变全局并不重要message
; enclosure
没有声明message
全局变量,因此它维护自己的局部作用域变量,独立于全局变量(即local
分享)。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)