python學(xué)習(xí)手冊(cè)中的python多態(tài)示例代碼
在處理多態(tài)對(duì)象時(shí),只需要關(guān)注它的接口即可,python中并不需要顯示的編寫(像Java一樣)接口,在使用對(duì)象的使用先假定有該接口,如果實(shí)際并不包含,在運(yùn)行中報(bào)錯(cuò)。
class handGun():
def __init__(self):
pass
def fire(self):
print 'handGun fire'
class carbine():
def __init__(self):
pass
def fire(self):
print 'carbine fire'
import handGun
import carbine
class gunFactory():
def __init__(self,gun_type):
self.gun_type = gun_type
def produce(self):
if handGun == self.gun_type:
return handGun.handGun()
else:
return carbine.carbine()
客戶端
fa = gunFactory(handGun)
gun = fa.produce()
/*只要是槍,就認(rèn)為它具有開火的功能,如果沒有開火的功能,程序運(yùn)行中就報(bào)錯(cuò)*/
gun.fire()
可以看到跟一般的靜態(tài)語言相比,python并沒有在語言級(jí)別來保證接口的正確性,只能依靠文檔、代碼來保證(可以在代碼中檢查接口是否存在,hasattr(gun,'fire'))
相關(guān)文章
python+requests+unittest API接口測試實(shí)例(詳解)
下面小編就為大家?guī)硪黄猵ython+requests+unittest API接口測試實(shí)例(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-06-06解決Building?wheel?for?wrapt?(setup.py)?...?error的問題
這篇文章主要介紹了解決Building?wheel?for?wrapt?(setup.py)?...?error的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12使用tensorflow實(shí)現(xiàn)矩陣分解方式
今天小編就為大家分享一篇使用tensorflow實(shí)現(xiàn)矩陣分解方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-02-02Python爬取網(wǎng)站圖片并保存的實(shí)現(xiàn)示例
這篇文章主要介紹了Python爬取網(wǎng)站圖片并保存的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02教你用Python+selenium搭建自動(dòng)化測試環(huán)境
今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識(shí),文章圍繞著如何用Python+selenium搭建自動(dòng)化測試環(huán)境展開,文中有非常詳細(xì)的介紹,需要的朋友可以參考下2021-06-06python實(shí)現(xiàn)Windows電腦定時(shí)關(guān)機(jī)
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)Windows電腦定時(shí)關(guān)機(jī)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-06-06python各種語言間時(shí)間的轉(zhuǎn)化實(shí)現(xiàn)代碼
這篇文章主要介紹了python各種語言間時(shí)間的轉(zhuǎn)化,需要的朋友可以參考下2016-03-03python實(shí)現(xiàn)添加圖片到word文檔中
這篇文章主要介紹了python實(shí)現(xiàn)添加圖片到word文檔中方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-09-09