如何在Python中从全局切换到局部作用域?
value = 4
def test():
global value
print(value + 2)
value = -10
print(value+5)
test()
print(value)
我知道把变量重名是不太好的做法,但我想试试这样做,以便理解这个概念。在上面的代码中,有没有办法切换回本地作用域,这样value = -10
只会在函数内部把value
改成-10
呢?
1 个回答
5
value = 4
def test():
print(globals()['value'] + 2)
value = -10
print(value+5)
test()
打印
6
-5
一旦声明了全局的 value
,就不能在全局和局部之间“切换”。不过,你可以让 value
在 test
函数里面成为一个局部变量,并通过 globals()
这个字典来访问全局的值。