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

python为什么在类的方法内修改全局int变量加了global后不报错但无效?

python为什么在类的方法内修改全局int变量加了global后不报错但无效?

斯蒂芬大帝 2019-02-20 08:24:36
我在尝试用python写一个命令行小游戏,其中有一个类需要修改一个全局的int变量,我明明已经加了global啊(百度结果等),代码也没有报错,但为什么再访问变量时却没有被修改?求解答~~环境:mac+python3.6+pycharm+ipython我的代码: # python代码 obj = {'s': []} sunlight = 0 class GameObject: indicating_char = '' def __init__(self, pos): self.pos = pos obj[self.indicating_char].append(self) def __str__(self): return self.indicating_char def step(self): pass class Sunflower(GameObject): def __init__(self, pos): self.indicating_char = 's' super().__init__(pos) def step(self): print('executing') global sunlight sunlight += 50 # ipython In [1]: from game import * In [2]: Sunflower(0).step() executing In [3]: sunlight Out[3]: 0
查看完整描述

1 回答

?
德玛西亚99

TA贡献1770条经验 获得超3个赞

这样用:

import game


game.SunFlower(0).step()
print(game.sunlight)
查看完整回答
反对 回复 2019-03-01
  • 1 回答
  • 0 关注
  • 932 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信