Python - 多个"私人"一个类的实现

时间:2014-05-02 13:30:02

标签: python class oop implementation

我有一个模块导出的公共类,以及它的3个实现。

在程序的某些点,使用的实现将动态更改, 类似的东西:

class PublicClass(object):

  _IMPLEMENTATION_TO_USE = _Imp1
  def func1(self, arg1): 
    _IMPLEMENTATION_TO_USE.func1(arg1)

class _Imp1(PublicClass):
  def func1(self, arg1): pass

class _Imp2(PublicClass):
  def func1(self, arg1): pass

实现它的最好(Pythonic)方法是什么?

1 个答案:

答案 0 :(得分:0)

您可以考虑使用具有三个不同子类的Abstract Base Class而不是组合。 在python中,duck typing比显式检查类型更受青睐。