0
我已经定义了从A
继承的类C
。现在有一个新类B
,它提供了与A
相同的方法,但具有稍微不同的行为。Python多重继承:选择要调用的基类的方法
如何设计类C
,使其易于使用A
或B
作为基类?理想情况下,我希望现在尽可能少地做这种改变,即使使用起来有点难看。
对于问题的其他上下文,A
和B
是psycopg2
游标。 A
是一个标准光标,而B
是一个dictcursor。 C
是提供Redshift特定功能的光标的包装。
为什么不传递A或B类型的对象作为C的构造函数的参数,其中C可以调用此对象上的方法? –
我也希望能够直接在'C'类型的对象上调用'A'的方法,例如,我希望能够调用'c.execute()',其中'A'和'B'上定义了'execute'。如果我无法做到这一切,我可能不得不按照自己的方式行事,但这不是最理想的,因为它会让使用类的代码变得不那么干净。 – marcog
你可以在类C上实现['__getattr__'](https://docs.python.org/2/reference/datamodel.html#object.__getattr__),以便它回落到内部对象上。 –