【发布时间】:2020-11-02 16:35:33
【问题描述】:
我有两个类,A 和 B。两者都有一个 foo 方法。在某些情况下,我不想让我的类 C 从 A 继承 foo (和其他方法),而在其他情况下从 B 继承。在代码示例中,C 将始终具有来自 A 的 foo 方法:
class A:
def foo(self):
print('A.foo()')
class B:
def foo(self):
print('B.foo()')
class C(A, B):
pass
C().foo()
如何选择继承哪个 foo 方法?喜欢:
class C(A,B):
def __init__(self, inherit_from):
if inherit_from == "A":
# inherit methods from A
elif inherit_from == "B":
# inherit methods from B
【问题讨论】:
-
这让我觉得是XY Problem。
-
嗯,也许 - 我有一个支持不同类型相机的头位估计包。每个相机都有获取图像、设置分辨率等的特定功能 - 其余过程是相同的(将图像馈送到位姿估计器等)。因此,应根据所连接的相机使用正确的功能。我认为最简洁的方法是为每种相机类型设置一个类,然后继承我需要的类
标签: python inheritance multiple-inheritance