黑松山资源网 Design By www.paidiu.com
记得之前learn python一书里面,因为当时没有官方支持,只能通过hack的方式实现抽象方法,具体如下 最简单的写法
class MyCls(): def foo(self): print('method no implement') 运行的例子 > a = MyCls() > a.foo() method no implement >
这样虽然可以用,但是提示不明显,还是容易误用,当然,还有更好的方法 较为可以接受的写法
class MyCls(): def foo(self): raise Exception('no implement exception', 'foo method need implement')
一个简单的用例
> a = MyCls() > a.foo() Traceback (most recent call last): File "<interactive input>", line 1, in <module> File "<clipboard>", line 3, in foo Exception: ('no implement exception', 'foo method need implement')
这就是2.7之前的写法了,2.7给了我们新的支持方法!abc模块(abstruct base class),这个在py3k中已经实现,算是back port吧。
我们来看看新的写法
from abc import ABCMeta from abc import ABCMeta,abstractmethod class Foo(): __metaclass__ = ABCMeta @abstractmethod def bar(self): pass
运行效果
> 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 "<interactive input>", line 1, in <module> TypeError: Can't instantiate abstract class C with abstract methods bar >
黑松山资源网 Design By www.paidiu.com
广告合作:本站广告合作请联系QQ:858582 申请时备注:广告合作(否则不回)
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
黑松山资源网 Design By www.paidiu.com
暂无评论...
更新日志
2024年10月09日
2024年10月09日
- 李家明.1992-不老的情人【新艺宝】【WAV+CUE】
- 以莉·高露.2015-美好時刻【风潮】【FLAC分轨】
- 谢金晶.2017-放心【豪记】【WAV+CUE】
- 炉石传说最强死亡骑士卡组是什么 死亡骑士最强天梯卡组推荐一览
- 炉石传说最强德鲁伊卡组是哪个 德鲁伊最强天梯卡组推荐一览
- 炉石传说最强战士卡组是哪个 战士最强天梯卡组推荐一览
- LexVandyke《HistoriadeunAmor情陷地中海》[WAV+CUE]
- TheBestPopClassics《LIGHTRHYTHMSOUND2》[WAV+CUE]
- TheLatinSoundofLexVandyke-ConciertodeAranjuez拉丁情人2012[SACD-ISO]
- 《怪物猎人世界》史低¥44,《耻辱终极版》仅需¥12
- 杉果秋促最后一天!海量3A大作击穿Steam史低
- 【果娘聊天室】国庆假期就这么水灵灵地结束啦!
- 《死或生》恋爱游戏新角色:来自大雷温柔公主的喂食
- 《寂静岭2》原制作人盛赞《寂静岭2:重制版》:新玩家能玩 我超高兴
- 艾什莉体模家今日份的COS:《鸣潮》守岸人 雪白香肩清纯而诱惑