【发布时间】:2014-07-01 04:34:30
【问题描述】:
假设我要创建SomeClass,它继承自两个类:
class SomeClass(InheritedClass1, InheritedClass2):
InheritedClass1 和InheritedClass2 都有同名方法,命名为performLogic。
如果我声明super().peformLogic(),我将只从第一个参数/继承类中获得结果。我需要两者的结果,所以我的问题是,有没有办法从InheritedClass1 调用该方法,然后使用super() 从InheritedClass2 调用该方法?
谢谢。
编辑:
我需要“解决”的类示例是这样构造的(为简洁起见,已简化并跳过了非必要的方法):
class One:
...
def getOutput(self):
self.output = self.performLogic()
return self.output
class Two(One):
...
def getFirstValue(self):
return input()
def getSecondValue(self):
return input()
class Three(Two):
...
def performLogic(self):
(some logic performation based on inputs from class Two methods)
class Four(Two):
...
def performLogic(self):
(some *different* logic performation based on inputs from class Two methods)
我现在需要做的是实现一个类,该类将执行class Three 和class Four 的逻辑,但只有一对输入值。于是我宣布:
class Five(Three,Four):
def performLogic(self):
*and here I got stuck*
*super().performLogic() will ask me for input values and returns the
*result of class Three's performLogic()*
*but what of class Four, I need the result of it's performLogic() with
*a single pair of input values, too?*
【问题讨论】:
-
谢谢,但这是 Python 2 示例,更多的是“理解说明”,我需要 Python 3 语法来解决这个特定问题。
标签: python oop inheritance python-3.x super