跳转到主要内容

Python 3的功能重载

项目描述

overloading 是一个模块,它根据运行时参数的类型和数量提供函数和方法调度。

当调用重载函数时,调度器将提供的参数与可用的签名进行比较,并调用提供最精确匹配的实现

@overload
def biggest(items: Iterable[int]):
    return max(items)

@overload
def biggest(items: Iterable[str]):
    return max(items, key=len)
>>> biggest([2, 0, 15, 8, 7])
15
>>> biggest(['a', 'abc', 'bc'])
'abc'

功能

  • 在注册期间对函数进行验证,以及全面的解析规则,保证在调用时有一个明确的结果。

  • 支持Python 3.5中引入的 typing 模块。

  • 支持可选参数。

  • 支持可变签名 (*args**kwargs).

  • 支持类/静态方法。

  • 评估位置和关键字参数。

  • 不依赖标准库之外的任何依赖项

文档

完整的文档可在 https://overloading.readthedocs.org/ 查找。

项目详情


下载文件

下载适用于您平台的应用程序。如果您不确定要选择哪个,请了解更多关于 安装包 的信息。

源分布

overloading-0.5.0.tar.gz (11.1 kB 查看哈希值)

上传时间 源代码

构建发行版

overloading-0.5.0-py3-none-any.whl (11.0 kB 查看哈希值)

上传时间 Python 3

支持者