我的问题很好地显示了问题,因此我将直接进入代码。
class Boxer:
def __init__(self, name):
self.name = name
self.health = 100
self.damage = 20
self.power = 30
这是原始或父类
class Prince(Boxer):
self.damage = 40
self.health = 80
我想做的是继承大多数的类属性,并且仅编辑这两个属性(损坏,健康),有什么方法可以不必创建整个其他类吗?
好的,所以这里有两件事并不完全正确。首先,对于码Prince
-self
只能在内部使用的方法一样,构造函数。Prince的属性实际上应该如下所示:
class Prince(Boxer):
damage = 40
health = 80
其次,构造函数在Boxer
被调用时将覆盖那些默认值。因此,对于那些可重写的对象,您需要在类定义中设置属性,而不是在构造函数中设置:
class Boxer:
health = 100
damage = 20
power = 30
def __init__(self, name):
self.name = name
那应该使您能够按预期工作。
编辑
如果您确实不想为每种拳击手类型都使用子类,则另一种方法是在构造函数中使用默认值,并且可以覆盖这些默认值。所以:
class Boxer:
def __init__(self, name, health=100, damage=20, power=30):
self.name = name
self.health = health
self.damage = damage
self.power = power
然后:
Boxer("Alan") # Ordinary boxer
Boxer("Prince", damage=40, health=80) # Prince is special
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句