Python多重继承:选择要调用的基类方法

时间:2014-07-15 00:32:09

标签: python postgresql inheritance multiple-inheritance amazon-redshift

我定义了一个继承自C的类A。现在有一个新类B提供与A相同的方法,但行为略有不同。

如何设计类C,以便使用AB作为基类?理想情况下,我现在想用尽可能少的工作来做这个改变,即使使用起来有点难看。

有关该问题的其他背景信息,ABpsycopg2个游标。 A是标准游标,而B是一个标记。 C是游标的包装器,提供特定于Redshift的功能。

1 个答案:

答案 0 :(得分:0)

您使用super函数,如下所示:

class A(object):
    def foo(self, arg):
        print arg, 'in parent class'

class C(A):
    def foo(self, arg):
        super(C, self).foo(arg)
        print arg, 'in subclass'

>>> C().foo('bar')
bar in parent class
bar in subclass

如果你这样做,C的方法就不必了解他们的基础实现。