为了账号安全,请及时绑定邮箱和手机立即绑定

有人可以解释python中全局变量的以下行为吗?

有人可以解释python中全局变量的以下行为吗?

ITMISS 2021-05-11 10:18:51
test.pyx = 10;   # global variabledef func1():  print(x);  # prints 10def 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()的情况下需要显式提及“ global”关键字?
查看完整描述

1 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

您可以访问全局变量,但要对其进行修改,应明确声明该变量是全局变量。

我认为此链接会很有用。

其背后的原因是,当您说x = x + 1时,python认为您想要一个局部变量x,然后当到达x + 1表达式时,python会发现该局部变量x被提及但未分配任何值,因此它感到困惑。


查看完整回答
反对 回复 2021-05-18
  • 1 回答
  • 0 关注
  • 111 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号