例如: assginment语句将声明一个新的局部变量。Python,如何更改父范围中变量的值?
foo = 'global'
def func1():
foo = 'func1'
def func2():
foo = 'local variable in func2'
利用全球宣言将在全局foo的:
def func2():
global foo
foo = 'global changed in func2' #changed the foo value in global scope
我怎样才能改变FUNC1范围变富?
感谢您的帮助。
编辑:
谢谢布兰登克雷格·罗德,我终于明白你的意思。
如果嵌套的范围超过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
如果有嵌套的三个以上的功能,
和各功能使用的变量在其他函数范围内,
为什么我们不声明全局列表变量?
谢谢你的帮助!
谢谢,这确实有帮助。但只是在想象中,如果嵌套的功能超过3个,那么该怎么办?请您多帮忙,谢谢。 – netroyal 2011-03-21 03:38:57
谢谢。我终于明白你的意思了。如果有多于两个函数嵌套,则可以使用foo [1,2,3]将每个值存储在foo [0] foo [1] foo [2]元素中。再次感谢你! – netroyal 2011-03-21 04:00:08