我尝试使用多重继承。Tank是Vehicle和Weapon:
class Weapon:
def __init__(self, name, strength, *args, **kwargs):
super().__init__(*args, **kwargs)
class Vehicle:
def __init__(self, name, average_speed, *args, **kwargs):
super().__init__(*args, **kwargs)
class Tank(Weapon, Vehicle):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
Tank(name="Moshe", average_speed=68, weight=62.5, strength=17.7)
所以坦克的 MRO 是[__main__.Tank, __main__.Weapon, __main__.Vehicle, object]。
不幸的是,Weapon和Vehicle都有name参数,所以目前出现以下错误:
TypeError: __init__() missing 1 required positional argument: 'name'
有没有一种非人工的方法可以将它传递给所有超类?
眼眸繁星
相关分类