根据我的理解,Python对函数有单独的命名空间,所以如果我想在函数中使用全局变量,我可能应该使用global
。
然而,即使没有global
,我也能够访问全局变量:
>>> sub = ['0', '0', '0', '0']
>>> def getJoin():
... return '.'.join(sub)
...
>>> getJoin()
'0.0.0.0'
为什么会这样?
另见在第一次使用后重新分配局部变量时发生的UnboundLocalError,当试图分配给全局变量而没有global
时发生错误。参见在函数中使用全局变量了解如何使用全局变量的一般问题。