068 python是否支援多繼承,舉例說明
阿新 • • 發佈:2022-04-21
1. python是否支援多繼承,請舉例說明
支援多繼承
class Calculator: def calculate(self, expression): return eval(expression) class MyPrint: def print(self, msg): print('msg:', msg) class MyCalculator1(Calculator, MyPrint): pass my1 = MyCalculator1() v = my1.calculate("1 + 3 * 6") my1.print(v)
2. 如果python類的多個父類存在相同的成員,按著什麼規則處理
class Calculator: def calculate(self, expression): self.value = eval(expression) return self.value def printResult(self): print('計算結果:{}'.format(self.value)) class MyPrint: def print(self, msg): print('msg:', msg) def printResult(self): print('result:{}'.format(self.value)) class MyCalculator1(Calculator, MyPrint): pass class MyCalculator2(MyPrint, Calculator): pass my1 = MyCalculator1() v = my1.calculate("1 + 3 * 6") my1.print(v) my1.printResult() my2 = MyCalculator2() v = my2.calculate("1 + 3 * 6") my2.print(v) my2.printResult()
msg: 19
計算結果:19
msg: 19
result:19
如果多個父類存在衝突的成員,那麼會使用最先遇到的成員(按照繼承類的先後順序)