例如: assginment语句将声明一个新的局部变量。在
foo = 'global'
def func1():
foo = 'func1'
def func2():
foo = 'local variable in func2'
使用全局声明将在global中使用foo:
^{pr2}$如何更改func1作用域中的foo变量?
谢谢你的帮助。
编辑:
谢谢布兰登·克雷格·罗德斯,我终于明白你的意思了。
如果嵌套的范围超过3个,我可以将变量存储在一个列表中。在
foo = ['global', 'function1', 'function2']
def func1():
foo[1] = 'func1'
def func2():
foo[2] = 'func2'
foo[1] = 'func1 modified in func2'
实际上我只是用了一个全局变量。在
因此,如果有两个函数嵌套,我们可以使用
nonlocal foo
以及
global foo
如果有三个以上的函数嵌套,
每个函数都使用其他函数范围内的变量,
为什么不声明一个全局列表变量?
谢谢你的帮助!!!
在python3.0及更高版本中,可以使用nonlocal关键字。在
我相信,在python3中,您可以使用
nonlocal
关键字来获得在封闭的非全局范围内修改变量的权限。在Python2中,不能在封闭范围内重新分配foo
;相反,请将foo
设置为一个可变对象,如列表[]
,然后将要存储的值粘贴到列表中:相关问题 更多 >
编程相关推荐