多分派
项目描述
Python中相对合理的多分派方法。
此多分派实现效率高,功能基本完整,执行静态分析以避免冲突,并提供可选命名空间支持。它看起来也很好。
请参阅文档:https://multiple-dispatch.readthedocs.io/
示例
>>> from multipledispatch import dispatch
>>> @dispatch(int, int)
... def add(x, y):
... return x + y
>>> @dispatch(object, object)
... def add(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)
def are_same_type(x, y):
return True
高效更新:添加新签名需要整个函数的完全解析。类型签名达到几百个后,这会变得麻烦。
安装和依赖
multipledispatch 在 Python 包索引 (PyPI) 上
pip install multipledispatch
它是纯 Python,只依赖于标准库。它是一个轻量级依赖。
许可证
新 BSD 许可。请参阅 许可证文件。
链接
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解有关 安装包 的更多信息。
源分发
multipledispatch-1.0.0.tar.gz (12.4 kB 查看哈希值)
构建分发
multipledispatch-1.0.0-py3-none-any.whl (12.8 kB 查看哈希值)