如何在python中从全局范围切换到本地范围?

Jus*_*tin 3 python scope global function local

value = 4

def test():
    global value
    print(value + 2)

    value = -10
    print(value+5)

test()
print(value)
Run Code Online (Sandbox Code Playgroud)

我知道影子变量不是一个好主意; 但是,我正在尝试这一点,所以我可以理解这个概念.在上面的代码中,有没有办法切换回本地范围,以便value = -10只更改value-10函数内?

unu*_*tbu 5

value = 4

def test():
    print(globals()['value'] + 2)

    value = -10
    print(value+5)

test()
Run Code Online (Sandbox Code Playgroud)

版画

6
-5
Run Code Online (Sandbox Code Playgroud)

一旦声明,就无法在全局value和本地之间"切换" ,但是你可以让它成为局部变量并通过dict 访问全局值.valueglobal valuevaluetestglobals()