python - 如何从父类(super class)的实例创建子类的实例?

标签 python class initialization

我创建了两个类,一个父类和一个子类。我想知道的是是否可以使用父类初始化子类。这是我的代码:

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/

相关文章:

java - 在函数中使用时初始化数组?

python - 根据另一个列表从 pandas 数据框列中的列表中删除值

python - 使用 Beautiful Soup 从 XML 返回嵌套属性

c - C 中的类内核模块初始化

css - 是否可以在 css 伪类中执行第 n 个子级的第 n 个子级?

Javascript Object.prototype 未定义

C - 不兼容的指针类型

python - 对从Python中的对象获取值感到困惑

php - Python 中的安全 MySQL 连接

javascript - 第二个参数 Object.create