python - 重构 - 泛化派生 类

python - refactoring - generalizing derived classes

我在 Python 中有以下代码。有两个 类 A2B2 共享函数 f1()f2()。它们的基数 类 不同,分别源自 AB

我可以看到如何使用 templatesC++ 中概括这一点。但我不确定该怎么做 Python

class A2(A):   
    def __init__(self):   
        A.__init__(self)   
        self._Z = Z('high')

    def f1(self):   
        return self._Z.f1() 

    def f2(self):   
        return self._Z.f2() 

    # ... more functions ...


class B2(B):   
    def __init__(self):   
        B.__init__(self)   
        self._Z = Z('low')

    def f1(self):   
        return self._Z.f1() 

    def f2(self):   
        return self._Z.f2() 

    # ... more functions ...

如果我理解你的问题,你可以试试 mixin class:

class Mixin(object):

    def f1(self):   
        return self._Z.f1() 

    def f2(self):   
        return self._Z.f2() 


class A2(A, Mixin): 

    def __init__(self):   
        A.__init__(self)   
        self._Z = Z('high')


class B2(B, Mixin):   
    def __init__(self):   
        B.__init__(self)   
        self._Z = Z('low')