如果我没记错的话,在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)
得到一个红色的水果。
答案 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)