在子类实例上调用Parent Constructor

时间:2018-01-22 16:25:34

标签: python inheritance constructor

如果我没记错的话,在C ++中可以在子类的实例上调用父类的构造函数,这样就可以创建父类的一个实例,重叠的属性将被复制。 python中是否存在这样的功能,以便以下' python'代码会做同样的事情吗?

如果我有父类Fruit

class Fruit():
    def __init__(self, color):
        self.color = color

和一个儿童班Apple

class Apple(Fruit):
    def __init__(self, color, seeds):
        self.seeds = seeds
        super().__init__(color)

你可以做到

an_apple = Apple('red', 42)
a_fruit = Fruit(an_apple)

得到一个红色的水果。

1 个答案:

答案 0 :(得分:1)

我能想到的唯一想法是制作工厂方法:

class Fruit():
    def __init__(self, color):
        self.color = color
    @staticmethod
    def MakeFruit(aFruit):
        return Fruit(aFruit.color)

用法:

an_apple = Apple('red', 42)  #assuming Apple as before
a_fruit = Fruit('blue')
a_red_fruit = Fruit.MakeFruit(an_apple)