Python 3.x 访问在多重继承中重写的第二个父方法

Python 3.x 访问在多重继承中重写的第二个父方法,python-3.x,Python 3.x,“我无法使用super方法访问第二个父类的方法,但当我在super中使用product时,它会显示phone类中方法的结果” “我正在等待Phone类的输出,但我收到了错误” 内置电话构造函数 运行时异常 回溯(最近一次呼叫最后一次): 文件“File.py”,第26行,在 s、 调用() 调用中第22行的文件“File.py” 超级(电话,自我)购买 AttributeError:“super”对象没有属性“buy” 多重继承: class SmartPhone(Product, Phone)

“我无法使用super方法访问第二个父类的方法,但当我在super中使用product时,它会显示phone类中方法的结果”

“我正在等待Phone类的输出,但我收到了错误”

内置电话构造函数
运行时异常
回溯(最近一次呼叫最后一次):
文件“File.py”,第26行,在
s、 调用()
调用中第22行的文件“File.py”
超级(电话,自我)购买
AttributeError:“super”对象没有属性“buy”
多重继承:

class SmartPhone(Product, Phone):
    def call(self):
        Phone.buy(self)
        Product.buy(self)
输出:

Inside phone constructor
Buying a phone
Product buy method
注意: 如果我能很好地理解你想要什么。您试图将该功能用于错误的目的

下面是一个从三个超类继承的类的示例:

class D(C, B, A):
    def __init__(self):
       super().__init__()
由于您已经在super()对象上调用了
\uuuuuu init\uuuuu
,这与调用所有三个超级类
\uuuuuuu init\uuuu
方法基本相同:

class D(C, B, A):
    def __init__(self):
       C.__init__()
       B.__init__()
       A.__init__()
当我使用super(Product,self).buy()时,它会将输出显示为:在phone构造函数中,并在下一行中购买一部手机
class D(C, B, A):
    def __init__(self):
       super().__init__()
class D(C, B, A):
    def __init__(self):
       C.__init__()
       B.__init__()
       A.__init__()