时间:2016-03-09 01:43:09

标签: python class variables reset

在我的程序中,我设置了两个名为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()

它不再在任何其他文件中定义

1 个答案:

答案 0 :(得分:1)

Python不会重置变量。

我们无法确定问题是什么,因为您没有向我们展示game获取player的代码,但有证据表明该播放器正在更新self.health += 100game使用的玩家不同。