python的interface模式

zinterface的Python项目详细描述


python的interface模式

它是什么, 有什么用

zinterface是一个帮助python实现接口模式的模块, interface模式能让多人合作开发变得轻松, 能解决代码依赖, 让程序逻辑更加清晰

python有了本身就是鸭子类型的, 为什么还要多此一举

在python中, 一个类可以当成另一个类型来使用, 前提是这个类实现了该类型的方法, 但是在IDE中它不会显示的告诉你这个类是否实现了该类型的所有方法, zinterface能帮助你强行要求某个类必须实现某个类型的所有方法, 能在代码预编译时就会报告某些方法未被实现

如何安装它

pip install zinterface

主页

github.com/zlyuancn/zinterface

导入zinterface

fromzinterfaceimportInterfaceBase,InterfaceCheck

创建接口类

@InterfaceBaseclassIAA():deftest(self):# 需要实现的类型pass

创建一个类实现该接口

@InterfaceCheckclassAA(IAA):deftest(self):print('测试')

高级用法实例

fromzinterfaceimportInterfaceBase,InterfaceCheck@InterfaceBaseclassIRead():defread(self):pass@InterfaceBaseclassIWrite():defwrite(self,data):pass@InterfaceBaseclassIFile(IRead,IWrite):pass@InterfaceCheckclassMyFileBase(IFile):defread(self):print('读取')defwrite(self,data):print('写入')a=MyFileBase()a.read()a.write(None)

更新日志

发布时间发布版本发布说明
19-02-190.1.0发布第一版

本项目仅供所有人学习交流使用, 禁止用于商业用途

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java不支持ArrayList。clear()方法释放内存?   java有一种保持测试的方法。Bat文件打开并运行其余的代码?   java XMLSocketReceiver和SocketReceiver是如何工作的?   Java ArrayList StringBuilder附加   java Jsoup从html表中提取数据   java JAXB通用XmlAdapter实现   java在半秒钟后更新JLabel中包含的图片   java如何在组织中打印整个标记结构。jdom。文档对象?   java我的公共int没有使用正确的参数,我的调用是否错误?   mysql与Java Rest Webservice的手动数据库连接(jersey)   java这个同步代码是如何中断的?   java试图在关闭的EntityManager上执行操作(在命名查询上调用setParameter()函数时)   java在使用流生成映射时忽略重复项   java使用整数创建日期并显示在文本框中   java在运行时动态更改类字段的注释