多次调度

multipledispatch的Python项目详细描述


Build StatusCoverage StatusVersion Status

在python中实现多个分派的相对理智的方法。

这种多重调度的实现是高效的,基本上是完整的, 执行静态分析以避免冲突,并提供可选的命名空间 支持。看起来也不错。

参见https://multiple-dispatch.readthedocs.io/

示例

>>>frommultipledispatchimportdispatch>>>@dispatch(int,int)...defadd(x,y):...returnx+y>>>@dispatch(object,object)...defadd(x,y):...return"%s + %s"%(x,y)>>>add(1,2)3>>>add(1,'hello')'1 + hello'

这是什么

  • 对所有非关键字参数进行调度
  • 支持继承
  • 支持实例方法
  • 支持联合类型,例如(int, float)
  • 支持内置抽象类,例如Iterator, Number, ...
  • 快速重复查找的缓存
  • 识别函数定义时可能存在的歧义
  • 提供解决出现歧义的提示
  • 支持具有可选关键字参数的命名空间
  • 支持可变分派

这不能做什么

  • 对角线调度
a=arbitrary_type()@dispatch(a,a)defare_same_type(x,y):returnTrue
  • 高效更新:添加新签名需要 整个功能。到了几百以后就麻烦了 键入签名。

安装和依赖项

multipledispatch在python包索引(pypi)上:

pip install multipledispatch

easy_install multipledispatch

multipledispatch支持python 2.6+和python 3.2+,其中 代码库。它是纯python,只需要小的six库作为依赖项。

简言之,这是一种对体重的依赖。

许可证

新的疯牛病。见License file

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

推荐PyPI第三方库


热门话题
java如何使用从PreparedStatement返回的RowId。getGeneratedKeys()?   selenium chrome驱动程序中下一个网站url的java空白页   java如何将参数化匿名类转换为lambda?   java JUnit在AfterClass上获取测试结果   java将动态XML/JSON内容与静态标记化负载进行比较,并检索标记值   java共享一个需要数据持久性的项目[数据库]   java在调用方法时获取意外的参数类型。getParameterTypes()   java如何用jdbc在swing中用另一个字段替换外键?   需要java Jersey Tomcat CDI依赖项解释   java如何生成UML图   java如何编写Jersey rest服务可以通过给定的spring代码访问   SpringMaven存储库管理器Nexus与Java依赖项的Artifactory   java将包从另一个项目导入eclipse中的当前项目   加密Java使用密码加密文件