我创建了两个类,一个父类和一个子类。我想知道的是是否可以使用父类初始化子类。这是我的代码:
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__()
适本地取决于所使用的形式。
关于python - 如何从父类(super class)的实例创建子类的实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43264743/