在我的程序中,我设置了两个名为game.py和player.py的类。 两个文件都调用Player类中的函数(一切都正确导入),并在game.py文件中打印有关变量的所有信息。但是,当从Game类更新变量时,新变量打印得很好,但是当它从Player类更新时它不会改变。相反,打印的变量是Player类中 init 的变量。
例如
(in the Game class)
print player.health
player.health += 1
print player.health
将打印
100
101
而如果我要做
self.health += 100 #(from within the Player class)
然后
print player.health #(from the Game class)
输出将是
100
注意:变量正在Player类中更新,但没有从Game类中正确打印。但我知道他们正在播放器中更新,因为当健康状态达到0时用户仍然会死,即使它一直显示为100
我相信原因是变量都被重置为了 Player类中的 init 变量,但这并不能完全解释为什么Game类可以永久地操作变量。它与自己有关吗?
任何帮助都非常感谢。谢谢!
编辑:添加游戏获取玩家变量的代码
purple("\n\nHealth: %d" % player.health)
purple是一个将文本变为紫色的函数,播放器在类的开头定义为
player = Player()
它不再在任何其他文件中定义
答案 0 :(得分:1)
Python不会重置变量。
我们无法确定问题是什么,因为您没有向我们展示game
获取player
的代码,但有证据表明该播放器正在更新self.health += 100
与game
使用的玩家不同。