>> 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
        主站蜘蛛池模板: 日韩一区二区免费视频| 五月亭亭免费高清在线| 亚洲成人一区二区| 亚洲人片在线观看天堂无码| 37pao成人国产永久免费视频 | 亚洲最大的黄色网| 国产精品久久久久久久久免费| 精品亚洲成a人片在线观看少妇| 国产一区二区三区在线观看免费| 亚洲熟妇AV一区二区三区宅男| 成人免费无码视频在线网站| 亚洲精品国产国语| 国产成人免费片在线视频观看| 久久精品国产亚洲av瑜伽| 免费A级毛片无码A∨男男| jizz免费观看| 亚洲国产精品第一区二区| 黄网站色视频免费看无下截| 亚洲毛片免费视频| 亚洲精品123区在线观看| 免费无码又爽又高潮视频 | 91在线亚洲综合在线| 国产免费观看a大片的网站| 免费一级毛suv好看的国产网站| 97免费人妻无码视频| 亚洲一区二区无码偷拍| 亚洲AⅤ视频一区二区三区| 亚洲精品无码你懂的| 亚洲国产精品专区在线观看| 久久精品无码免费不卡| 亚洲视频一区调教| 永久免费看bbb| 一区二区三区免费在线观看| 久久久婷婷五月亚洲97号色| 成年女人喷潮毛片免费播放| 一级A毛片免费观看久久精品| www国产亚洲精品久久久| 久久国产精品成人免费| 亚洲色偷偷偷综合网| 亚洲婷婷国产精品电影人久久| 99久久久国产精品免费蜜臀|