擅长:python、mysql、java
<blockquote>
<p>So, is there any way to make it so, for example, when you're level 5 your max health is set to 15, rather than ten?</p>
</blockquote>
<p>是的。除了玩家的“当前生命值”之外,你还需要为他存储一个“最大生命值”:</p>
<pre><code>if player1.getHealth() > player.getMaxHealth()
player1.setHealth(player.getMaxHealth())
</code></pre>
<hr/>
<p>正如Padraic在一篇评论中解释的那样,在Python中不需要这样的getter和setter,而且它通常被认为是不好的风格。所以最好这样写:</p>
^{2}$
<p>您可以使用<code>min</code>将其写得更简洁一些:</p>
<pre><code>player1.health = min(player1.health, player1.max_health)
</code></pre>
<hr/>
<p>另外,如果max health是可以动态计算的(可能是<code>10 + level</code>?),您可以为此编写一个函数,并在需要时调用该函数,而不是将其存储为一个额外的属性。在</p>
<p>Python的一个精妙之处在于,您可以从一个属性开始,然后通过使用<code>@property</code>将其更改为计算值,而不必将其转换为函数:</p>
<pre><code>@property
def max_health(self):
return 10 + self.level
</code></pre>