当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python typing.overload用法及代码示例


用法:

@typing.overload

@overload 装饰器允许说明支持多种不同参数类型组合的函数和方法。一系列 @overload 修饰的定义必须紧跟一个非 @overload 修饰的定义(对于相同的函数/方法)。 @overload 修饰的定义仅用于类型检查器,因为它们将被非 @overload 修饰的定义覆盖,而后者在运行时使用但应被类型检查器忽略。在运行时,直接调用 @overload -decorated 函数将引发 NotImplementedError 。给出比使用联合或类型变量表示的更精确类型的重载示例:

@overload
def process(response: None) -> None:
    ...
@overload
def process(response: int) -> tuple[int, str]:
    ...
@overload
def process(response: bytes) -> str:
    ...
def process(response):
    <actual implementation>

参看PEP 484有关详细信息以及与其他类型语义的比较。

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 typing.overload。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。