我创建了两个类,一个父类和一个子类。我想知道的是是否可以使用父类初始化子类。这是我的代码:
class Pc:
def __init__(self, brand, processor, price):
self.brand = brand
self.processor = processor
self.price = price
class Laptop(Pc):
def __init__(self,brand,processor,price, battery):
Pc.__init__(self,brand,processor,price)
self.battery = battery
现在我可以初始化 Laptop 类:
b = Laptop('brand','processor','price')
但这对我来说似乎没什么用,我的老师也没有很好地解释它。我很想知道是否可以做这样的事情:
a = Pc("brand","processor","price")
b = Laptop(a, "battery")
当我用我的代码尝试这个时,我得到了一个错误。甚至可以这样做吗?
请您参考如下方法:
你可以这样做:
class Laptop(Pc):
def __init__(self, pc, battery):
Pc.__init__(self, pc.brand, pc.processor, pc.price)
self.battery = battery
这会初始化从您提供给构造函数的 pc 参数继承的属性。
如果你想使用 short 或 long 方法,你应该定义构造函数来接受关键字参数,然后使用 if 语句调用 Pc.__init__() 适本地取决于所使用的形式。
