国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python學習手冊中的python多態示例代碼

2020-02-23 05:06:47
字體:
來源:轉載
供稿:網友

在處理多態對象時,只需要關注它的接口即可,python中并不需要顯示的編寫(像Java一樣)接口,在使用對象的使用先假定有該接口,如果實際并不包含,在運行中報錯。
代碼如下:
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()

/*只要是槍,就認為它具有開火的功能,如果沒有開火的功能,程序運行中就報錯*/
gun.fire()

可以看到跟一般的靜態語言相比,python并沒有在語言級別來保證接口的正確性,只能依靠文檔、代碼來保證(可以在代碼中檢查接口是否存在,hasattr(gun,'fire'))

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 松阳县| 南安市| 湟源县| 故城县| 兴文县| 莱州市| 云龙县| 广水市| 个旧市| 罗山县| 荔波县| 陇西县| 东乡族自治县| 安宁市| 丹江口市| 德保县| 淳安县| 长宁县| 抚顺市| 双桥区| 巴东县| 崇州市| 饶阳县| 天祝| 濉溪县| 同心县| 二连浩特市| 探索| 新巴尔虎右旗| 嘉鱼县| 炎陵县| 凯里市| 仲巴县| 林芝县| 浙江省| 孟州市| 礼泉县| 洛川县| 洛川县| 屯昌县| 申扎县|