有人可以解释python中全局变量的以下行为吗? [复制]
Posted
技术标签:
【中文标题】有人可以解释python中全局变量的以下行为吗? [复制]【英文标题】:Could some explain the following behavior of global variable in python? [duplicate] 【发布时间】:2019-01-11 05:29:55 【问题描述】:test.py
x = 10; # global variable
def func1():
print(x); # prints 10
def func2()
x = x + 1; # IDE shows error: "Unresolved reference of x(RHS of expression)
def func3()
global x;
x = x + 1; # This works
当 x 具有全局范围时,为什么 func2() 不允许我修改它的值,尽管它可以在 func1() 中看到。为什么它需要像 func3() 一样明确提及“全局”关键字?
【问题讨论】:
也可以查看matthew-brett.github.io/teaching/global_scope.html 【参考方案1】:您可以访问全局变量,但要修改它们,应明确声明该变量是全局变量。
我认为这个link 会很有用。
背后的原因是当你说 x = x + 1 时,python 认为你想要一个局部变量 x,然后当到达 x + 1 表达式时,python 发现局部变量 x 被提及但没有分配任何值,所以它会混淆。
【讨论】:
s/ 用于修改/用于重新绑定/以上是关于有人可以解释python中全局变量的以下行为吗? [复制]的主要内容,如果未能解决你的问题,请参考以下文章
我是 python 新手,我偶然发现了一个函数/变量?我不知道它是做啥的,有人可以解释一下吗? [复制]