【问题标题】: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')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多