【问题标题】:How to switch from global to local scope in python?如何在python中从全局范围切换到本地范围?
【发布时间】:2014-04-11 09:14:21
【问题描述】:
value = 4

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

    value = -10
    print(value+5)

test()
print(value)

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

【问题讨论】:

    标签: python function scope global local


    【解决方案1】:
    value = 4
    
    def test():
        print(globals()['value'] + 2)
    
        value = -10
        print(value+5)
    
    test()
    

    打印

    6
    -5
    

    一旦声明了global value,就无法在全局value和局部value之间“切换”,但是你可以让value成为test中的局部变量,并通过globals() 字典。

    【讨论】:

    • 如果我打电话给print(value),它会打印出-10
    • 是的,如果您在test 中调用print(value),就应该这样。如果您想要全局值,请使用globals()['value']
    猜你喜欢
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    • 2021-04-30
    • 1970-01-01
    • 2013-11-06
    • 2015-09-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多