如何在Python中从全局切换到局部作用域?

3 投票
1 回答
747 浏览
提问于 2025-04-17 21:22
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,就不能在全局和局部之间“切换”。不过,你可以让 valuetest 函数里面成为一个局部变量,并通过 globals() 这个字典来访问全局的值。

撰写回答