1. 程式人生 > >python筆記 類介面技術

python筆記 類介面技術

類介面技術

擴充套件只是一種同超類介面的方式。下面所展示的sPecial’ze.Py檔案定義了多個類,示範了一些常用技巧。
Super
定義一個method函式以及一個delegate函式.
Inheritor
沒有提供任何新的變數名,因此會獲得Super中定義的一切內容。
Replacer
用自己的版本授蓋Super的method.
EXtender
覆蓋並回調預設method,從而定製Super的method.
Providel
實現Super的delegate方法預期的action方法。

class Super:
    def method(self)
:
print('in Super.method') def delegate(self): try: self.action() # 未被定義 except: pass class Inheritor(Super): pass class Replacer(Super): def method(self): # 完全代替 print("in Replacer.method") class Extender(Super): def method
(self):
# 方法擴充套件 print('starting Extender.method') Super.method(self) print('ending Extender.method') class Provider(Super): def action(self): # 補充所需方法 print('in Provider.action') if __name__ == '__main__': for k in (Inheritor, Replacer, Extender): print("\n"
+ k.__name__ + "...") k().method() print("---Provider-----------------------") x = Provider() x.delegate() y = Extender() y.delegate()

列印資訊

'''
Inheritor...
in Super.method

Replacer...
in Replacer.method

Extender...
starting Extender.method
in Super.method
ending Extender.method
---Provider-----------------------
in Provider.action
has no action function
'''

參考python學習手冊 694-695