python3 class写法_Python抽象类的新写法
记得之前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 "", 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中已经实现,算是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()
>>> 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
>>>
本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉
本文系统来源:php中文网
python3 class写法_Python抽象类的新写法相关推荐
- python编程购物车_python编写购物车新写法
用另一种方式完成购物车的功能实现 #!/usr/bin/python zijin = input("请输入资金:") if zijin.isdigit(): zijin = int ...
- android 复杂的列表视图新写法MultiType
从前,比如我们写一个类似微博列表页面,这样的列表是十分复杂的:有纯文本的.带转发原文的.带图片的.带视频的.带文章的等等,甚至穿插一条可以横向滑动的好友推荐条目.不同的 item 类型众多,而且随着业 ...
- vue2.x中slot-scope插槽在vue3.x中的新写法
vue2.x中slot-scope插槽在vue3.x中的新写法 1.vue2.x的写法 <el-table-column label="测试" align="cen ...
- 当ViewModelProviders方法被弃用,使用ViewModelProvider获取ViewModel的新写法_莫韵乐与bug的奇妙冒险
当ViewModelProviders方法被弃用,使用ViewModelProvider获取ViewModel的新写法 在androidx.lifecycle:lifecycle-extensions ...
- Python2寿命只剩一个月啦!还不快赶紧学起Python3酷炫到爆的新特性!
作者: Lateautumn4lin 来源:云爬虫技术研究笔记 Python3.8已经发布了将近一个月了,距离Python3.0第一个版本发布也将超过10年了.相信很多人还是依旧在使用Python2 ...
- Restful API是什么?初探Restful API,传统接口写法与Restful API接口写法区别
Restful API是什么?初探Restful API?为什么要用Restful API?传统接口写法与Restful API接口写法区别,带着这些问题我们来具体了解下Restful API: 目录 ...
- oracle的标准写法,oracle 表连接特有写法与标准写法
oracle里表连接支持标准写法,但也有oracle特殊的写法,这两种写法在某些场景下会有差异,推荐使用标准写法,这里只是介绍表连接标准语法及了解oracle的特殊写法. 标准连接语法: select ...
- Vue.js父与子组件之间传参 父向子组件传参 例子:App.vue为父,引入componetA组件之后,则可以在template中使用标签(注意驼峰写法要改成componet-a写法,因为ht
Vue.js父与子组件之间传参 父向子组件传参 例子:App.vue为父,引入componetA组件之后,则可以在template中使用标签(注意驼峰写法要改成componet-a写法,因为html对 ...
- .php中js写法,js函数常见的写法以及调用方法
写在前面:本文详细的介绍了5中js函数常见的写法以及调用的方法,平时看别人代码的时候总是看到各种不同风格的js函数的写法.不明不白的,找了点资料,做了个总结,需要的小伙伴可以看看,做个参考. 1.常规 ...
最新文章
- Pytorch数据类型转换
- Python20行代码实现视频字符化
- 如何打印出 SAP Spartacus 调用 OCC API 消费的所有 endpoint
- 计算机网络【六】网络层协议
- 嵌入式linux中的锁机制,跟涛哥一起学嵌入式第11集:一个实现锁机制非常有意思的宏...
- Java开发笔记(八十六)通过缓冲区读写文件
- GitHub更新Fork代码
- 《Android开发艺术探索》读书笔记 (7) 第7章 Android动画深入分析
- 已知两点坐标和半径,求圆心
- QTreeWidget样式qss
- .强力卸载或者删除文件
- 概率收敛、分布收敛、Lp收敛
- 云计算技术与应用课后答案第一章
- 华为eNSP模拟器中两个路由器IP互联
- origin画图---学习时遇到的画图记录
- ubuntu如何查看当前的ROS发行版本
- Charles 常用基础功能使用方法
- 你还在纠结器件丝印放错的烦恼么?
- 【Cloudaily】蚂蚁金服与RISELab达成合作,Hadoop成新一波数据库攻击目标
- 2020 年天津理工大学研究生招生考试 数据结构部分
热门文章
- Google Android EDLA协议及AER认证
- JavaSwing多线程小游戏雷霆战机
- Java 收货地址智能解析
- twitter账号被冻结如何申诉,已成功解冻(我是第一次被冻结,听闻二次冻结会永久冻结)
- 计算机游戏模式怎么开144hz,刚开始换成了144hz现在为何最高只有60hz了求大神解答...
- HMI-42-【节能模式】实现油量表和水温表
- 为什么short_open_tag设置成On仍无效
- 用python编写西门子plc程序_snap7读写西门子plc1200步骤(python)
- 当代世界顶级彩铅牛人的画作,每一副仿佛照片一样逼真!
- java.io.FileNotFoundException: /storage/emulated/0/ ……: open failed: EACCES (Permissi