>> a = MyCls() >>> a.foo() m" />

<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        Python抽象類的新寫法

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 14:41:07
        文檔

        Python抽象類的新寫法

        Python抽象類的新寫法:記得之前l(fā)earn python一書里面,因?yàn)楫?dāng)時沒有官方支持,只能通過hack的方式實(shí)現(xiàn)抽象方法,具體如下 最簡單的寫法 class MyCls(): def foo(self): print('method no implement') 運(yùn)行的例子 >>> a = MyCls() >>> a.foo() m
        推薦度:
        導(dǎo)讀Python抽象類的新寫法:記得之前l(fā)earn python一書里面,因?yàn)楫?dāng)時沒有官方支持,只能通過hack的方式實(shí)現(xiàn)抽象方法,具體如下 最簡單的寫法 class MyCls(): def foo(self): print('method no implement') 運(yùn)行的例子 >>> a = MyCls() >>> a.foo() m

        記得之前l(fā)earn python一書里面,因?yàn)楫?dāng)時沒有官方支持,只能通過hack的方式實(shí)現(xiàn)抽象方法,具體如下 最簡單的寫法

        class MyCls():
         def foo(self):
         print('method no implement')
        
        運(yùn)行的例子
        
        
        >>> a = MyCls()
        >>> a.foo()
        method no implement
        >>>
        

        這樣雖然可以用,但是提示不明顯,還是容易誤用,當(dāng)然,還有更好的方法 較為可以接受的寫法

        class MyCls():
         def foo(self):
         raise Exception('no implement exception', 'foo method need implement')

        一個簡單的用例

        >>> a = MyCls()
        >>> a.foo()
        Traceback (most recent call last):
         File "", line 1, in 
         File "", line 3, in foo
        Exception: ('no implement exception', 'foo method need implement')

        這就是2.7之前的寫法了,2.7給了我們新的支持方法!abc模塊(abstruct base class),這個在py3k中已經(jīng)實(shí)現(xiàn),算是back port吧。

        我們來看看新的寫法

        from abc import ABCMeta
         
        from abc import ABCMeta,abstractmethod
         
        class Foo():
         __metaclass__ = ABCMeta
         @abstractmethod
         def bar(self):
         pass

        運(yùn)行效果

        >>> class B(Foo):
        ... def bar(self):
        ... pass
        ... 
        >>> B()
        <__main__.B object at 0x02EE7B50>
        >>> B().bar()
        >>> class C(Foo):
        ... pass
        ... 
        >>> C().bar()
        Traceback (most recent call last):
         File "", line 1, in 
        TypeError: Can't instantiate abstract class C with abstract methods bar
        >>> 

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        Python抽象類的新寫法

        Python抽象類的新寫法:記得之前l(fā)earn python一書里面,因?yàn)楫?dāng)時沒有官方支持,只能通過hack的方式實(shí)現(xiàn)抽象方法,具體如下 最簡單的寫法 class MyCls(): def foo(self): print('method no implement') 運(yùn)行的例子 >>> a = MyCls() >>> a.foo() m
        推薦度:
        標(biāo)簽: python python的 的寫法
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 91av免费观看| 免费乱理伦在线播放| 久久精品国产亚洲综合色| 亚洲精品福利网站| 久久午夜免费鲁丝片| 亚洲av无码一区二区三区不卡| 中文精品人人永久免费| 成熟女人特级毛片www免费| 亚洲依依成人精品| 免费无码精品黄AV电影| 亚洲第一中文字幕| 亚在线观看免费视频入口| 亚洲人成网址在线观看| 999久久久免费精品国产| 国产AV无码专区亚洲AV男同| 成全视频在线观看免费| 亚洲一区二区三区日本久久九 | 怡红院亚洲红怡院在线观看| 国产乱子伦精品免费无码专区| 亚洲av女电影网| 免费毛片a在线观看67194| 亚洲AV无码一区二区乱子伦| 三年片在线观看免费观看大全动漫| 大学生美女毛片免费视频| 亚洲AV一区二区三区四区| 国产亚洲精品资在线| 91久久青青草原线免费| 亚洲色偷精品一区二区三区| 亚洲国产成人爱av在线播放| 国产中文字幕在线免费观看| 亚洲欧洲校园自拍都市| 一级毛片在线观看免费| 国产亚洲福利在线视频| 免费在线观看的网站| 猫咪免费人成在线网站 | 亚欧人成精品免费观看| 国产成人综合亚洲一区| 免费毛片网站在线观看| 亚洲欧美日韩国产成人| 亚洲一区二区三区无码中文字幕| 青青操在线免费观看|