python筆記 類介面技術
阿新 • • 發佈:2018-11-07
類介面技術
擴充套件只是一種同超類介面的方式。下面所展示的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