<p>您可以将这些东西存储到用作存储容器的类中。如果将它们声明为类变量和任何访问器<a href="https://docs.python.org/3/library/functions.html#classmethod" rel="nofollow noreferrer">@classmethods</a>,则不需要实例。你知道吗</p>
<pre><code>class GameState:
gold = 0
exp = 0
etnl = 100 #exp to next level
maxHP = 50
curHP = 50
maxmana = 10
curmana = 10
helm = "none"
armtop = "none"
armbot = "none"
boots = "none"
gloves = "none"
weapon = "fists"
weapons = {"fists":(5,5),"sword":(15,12),"mace":(30,3),"cushion":(2,20)}
@classmethod
def reset(cls):
cls.gold = 0
cls.exp = 0
cls.etnl = 100 #exp to next level
cls.maxHP = 50
cls.curHP = 50
cls.maxmana = 10
cls.curmana = 10
cls.helm = "none"
cls.armtop = "none"
cls.armbot = "none"
cls.boots = "none"
cls.gloves = "none"
cls.weapon = "fists"
@classmethod
def attack(cls):
return cls.weapons.get(cls.weapon,(0,0))[0]
@classmethod
def defense(cls):
return cls.weapons.get(cls.weapon,(0,0))[1]
for w in State.weapons:
State.weapon = w
print("{} has attack {} and defense {}.".format(w, State.attack(),State.defense()))
</code></pre>
<p>输出:</p>
<pre><code>fists has attack 5 and defense 5.
sword has attack 15 and defense 12.
mace has attack 30 and defense 3.
cushion has attack 2 and defense 20.
</code></pre>
<hr/>
<p>你可能想把一些东西分开-f.e.一个额外的类用于武器/伤害/防御相关的东西。。。你知道吗</p>
<p>更多阅读:</p>
<ul>
<li><a href="https://stackoverflow.com/questions/136097/what-is-the-difference-between-staticmethod-and-classmethod">What is the difference between @staticmethod and @classmethod?</a></li>
<li><a href="https://docs.python.org/3/tutorial/classes.html#class-and-instance-variables" rel="nofollow noreferrer">https://docs.python.org/3/tutorial/classes.html#class-and-instance-variables</a></li>
</ul>