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

标签 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功能?

最佳答案

value = 4

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

    value = -10
    print(value+5)

test()

打印

6
-5

一旦 global value 被声明,就没有办法在全局 value 和局部 value 之间“切换”,但是你可以让 valuetest 中的局部变量,并通过 globals() 字典访问全局值。

关于python - 如何在 python 中从全局范围切换到本地范围?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22263383/

相关文章:

python - 如何使用Python3查找日期列表中的所有日期

python - 连接到 nxt 砖时出错

c++ - 从 C++ 函数返回一个字符串

javascript - 连接来自 JavaScript XMLHttpRequest 的多个响应

python - 为什么我不能修改作为函数内部参数传递的列表?

python - Matplot Numpy 值错误 : setting an array element with a sequence

python - 如何使用opencv(python),simplecv或pil进行图像拼接?

c++ - 使用函数求数组 C++ 的平均值

c++ - 具有不同返回类型的函数重载

c - 更新模块级状态字符串的正确方法