<p>当你将两个实例或一个对象装箱时,它们不是同一件事。让我们坐下来,我有一个通用类三角形,属性是a,b,c。我可以同时有两个不同边长的三角形。一次只能修改一个护甲/武器实例的属性。你能发布一个你的类武器/对象实现的例子吗,这样我们就可以更好地了解你在尝试做什么</p>
<p>编辑:</p>
<p>让我们试着用您的环境来解释类和子类。我们想要定义一个通用的物体叫做武器,它有一些属性来表示伤害和射程</p>
<pre><code>class Weapon:
def __init__(self, dmg):
self.dmg = dmg
self.range = 1
self.ench = None
self.upg = None
def enchant(self, value):
self.ench = value
def upgrade(self, value):
self.upg = value
def __str__(self):
return "Generic weapon, {} dmg and {} range".format(self.dmg, self.range)
</code></pre>
<p>现在我们要创建一个名为swill的子类,它继承泛型类的所有内容,但可以实现更具体的属性和函数</p>
<pre><code>class Sword(Weapon):
def __init__(self, dmg):
Weapon(self, dmg)
self.range = 5
def __str__(self):
"Sword, {} dmg, {} range, {} enchant, {} upgrade"
.format(self.dmg, self.range, self.ench, self.upg)
</code></pre>
<p>你现在可以在同一个样式中使用这两种武器,对泛型父类进行子类化</p>
<pre><code>a = Weapon(2)
b = Sword(5)
c = Sword(5)
c.enchant(2)
d = Sword(5)
d.upgrade(1)
print("{}\n{}\n{}\n{}".format(a,b,c,d))
=> Generic weapon, 2 dmg and 1 range
Sword, 5 dmg, 5 range, None enchant, None upgrade
Sword, 5 dmg, 5 range, 2 enchant, None upgrade
Sword, 5 dmg, 5 range, None enchant, 1 upgrade
</code></pre>
<p>我希望你能了解一些这个概念,我建议你从网上的一些教程中了解更多,你可以搜索OOP</p>