我仍在努力研究 Python 中的类继承,所以请耐心等待:如果我有两个非常相似的类:
class Red:
def print_color(self):
print('red')
class Blue:
def print_color(self):
print('blue')
继承这些类以创建抽象类(比如 Color)的正确方法是什么,该抽象类使用某种参数进行初始化,该参数决定使用哪个底层类?初始化后,我应该可以这样做:
>>> a = Color('red')
>>> a.print_color()
red
请您参考如下方法:
要使所需的示例完全按原样工作,这就是您所需要的:
class Color:
def __init__(self, color):
self.color = color
def print_color(self):
print(self.color)
没有继承,什么都没有。
如果您确实希望 Color('red') 生成 Red 类的实例,则 Color 只需要是一个工厂函数:
def Color(color):
constructors = {'red': Red, 'blue': Blue}
return constructors[color]()
这里仍然不涉及继承。
