我定义了一个继承自C
的类A
。现在有一个新类B
提供与A
相同的方法,但行为略有不同。
如何设计类C
,以便使用A
或B
作为基类?理想情况下,我现在想用尽可能少的工作来做这个改变,即使使用起来有点难看。
有关该问题的其他背景信息,A
和B
是psycopg2
个游标。 A
是标准游标,而B
是一个标记。 C
是游标的包装器,提供特定于Redshift的功能。
答案 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的方法就不必了解他们的基础实现。