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

时间:2014-03-08 00:38:41

标签: python function scope global local

value = 4

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

    value = -10
    print(value+5)

test()
print(value)

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

1 个答案:

答案 0 :(得分:5)

value = 4

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

    value = -10
    print(value+5)

test()

打印

6
-5

宣布value后,无法在全局value和本地global value之间“切换”,但您可以让value成为test内的本地变量{1}}并通过globals()词典访问全局值。