在python中修改函数内的全局变量,我们需要将它声明为函数内的全局“变量”。 例1:
variable = [10]
def function():
global variable
variable = [20]
return
print variable # will print [10]
function()
print variable # will print [20]
如果没有全局,它会将变量视为局部变量,不会修改全局变量。 Exmaple2:
variable = [10]
def function():
variable = [20]
return
print variable # will print [10]
function()
print variable # will print [10]
但是我遇到了需要修改全局列表的情况。 但令我震惊的是,我能够使用list对象的“append”功能修改全局列表。我没有在函数中声明变量为全局变量。示例3:
variable = [10]
def function():
variable.append(20)
return
print variable # will print [10]
function()
print variable # will print [10, 20]
我怀疑列表对象的“附加”功能是如何修改全局变量的,而无需访问全局变量?如果有人对此行为有解释,请告诉我。