首页 > 解决方案 > 在 Python 中使用一个类基于 __init__() 返回不同的对象?

问题描述

我必须处理两种格式,比如 A 和 B。我想构建一个类,以在 Python 中以最佳方式处理这两种格式。

我的想法是有一个基于init () 传递的类返回一个负责处理该格式的不同对象。这样,我的用户只需要处理一个类。

class AnnotationHelper:
    
    def __init__(self, format):
        if format == "A":
           #return object AnnotationHelperA
        elif format == "B":
           #return object AnnotationHelperB 
        else raise ValueError("Invalid format")
    
   def get_x():
        raise NotImplementedError() //AnnotationHelperA and AnnotationHelperB should implement this

像这样的“设计模式”会被称为什么?这是解决我的问题的有效方法还是有另一种标准的方法来做这样的事情?我只是希望我的代码尽可能干净和可重用。

标签: pythondesign-patterns

解决方案


推荐阅读