对这个问题的跟进,这个问题的表述不是很好。答案提供了一些额外的见解,所以现在我构建了一个有限的工作示例来更好地解释它。
基本上我们有两个子类A
和B
一个C
继承自两者的类。类A
和B
两者都有一个功能,MyFunc
但它做不同的事情。
我希望 classC
能够使用这两个函数并完全控制调用哪个函数,因为我希望对每个函数做不同的事情。下面有限工作示例中的评论显示了我正在尝试做的事情。
class A():
def __init__(self, var1, var2):
self.var1 = var1
self.var2 = var2
def MyFunc(self):
result = self.var1 + self.var2
return result
class B():
def __init__(self, var1):
self.var1 = var1
def MyFunc(self):
result = self.var1**2
return result
class C(A,B):
def __init__(self, var1, var2, var3):
A.__init__(self, var1, var2)
B.__init__(self, var3)
def MyFunc(self):
#in this function I want to call MyFunc from A and MyFunc from B. For example to add their results together
我怎么能叫MyFunc
中A
和MyFunc
在B
距离MyFunc
中C
?
您可以使用名称修改使子类中的类的属性可用,即使该子类定义了具有相同名称的属性。
class A():
def __init__(self, var1, var2):
self.var1 = var1
self.var2 = var2
def __MyFunc(self):
result = self.var1 + self.var2
return result
MyFunc = __MyFunc
class B():
def __init__(self, var1):
self.var1 = var1
def __MyFunc(self):
result = self.var1**2
return result
MyFunc = __MyFunc
class C(A,B):
def __init__(self, var1, var2, var3):
A.__init__(self, var1, var2)
B.__init__(self, var3)
def MyFunc(self):
return self._A__MyFunc() + self._B__MyFunc()
c = C(1, 2, 3)
print(c.MyFunc())
# 14
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句