Python 的物件導向程式設計(OOP)有 2 個一定要懂的東西:
- super() 函式
- MRO(Method Resolution Order) / 方法解析順序
如果不懂得這 2 個東西,就無法徹底解放類別(class)的力量,甚至可能導致寫出不夠彈性而且冗長的程式碼。
super() + MRO
= 超級瑪利歐?(誤
本文將從 super()
函式開始講解,說明 Python 的 MRO(Method Resolution Order) ,並介紹 MRO 的特性在實務上的應用。
如果你無法正確回答以下範例結果的執行結果,那麽推薦你看完本文:
class Parent(object):
NAME = 'Parent'
def __str__(self):
return self.NAME
class Child(Parent):
NAME = 'Child'
def __str__(self):
return super().__str__()
c = Child()
print(c)
正確答案為: Child
Posted on
Oct 6, 2023
in
Python 程式設計 - 中階
by
Amo Chen
‐ 6 min read