【问题标题】:Dynamic switching between classes which contain similar functions包含相似功能的类之间的动态切换
【发布时间】:2020-12-04 22:35:05
【问题描述】:
我有一个基础抽象类和 2 个子类(Reader_a 和 Writer_a)。我有另一组从同一个基类继承的类(reader_b,writer_b)。 writer_a writer_b 和 reader_a 和 reader_b 用于相同的目的,但处理不同类型的图像,基本上它们具有不同的后端。
python中是否有任何功能可以根据用户输入的图像类型切换这些类?
【问题讨论】:
标签:
python
python-3.x
abstract-class
multiple-inheritance
【解决方案1】:
我将向基类添加两个工厂(静态)方法,它们将检查类型并相应地创建正确的子类。
class Base:
@staticmethod
def create_reader(image):
if image == 'A':
return Reader_a()
elif image == 'B':
return Reader_b()
else:
raise Exception('Unknown image')
@staticmethod
def create_writer(image):
if image == 'A':
return Writer_a()
elif image == 'B':
return Writer_b()
else:
raise Exception('Unknown image')