小编And*_*art的帖子

Mypy 错误:“重载函数签名 2 将永远不会匹配:签名 1 的参数类型相同或更广泛”

我试图了解在键入函数时如何使用重载装饰器。如果我编写以下代码并通过 mypy 运行它:

from typing import Union, overload

@overload
def myfunc(a: float, b: float) -> float: ...
@overload
def myfunc(a: int, b: int) -> int: ...

def myfunc(a: Union[float, int], b: Union[float, int]) -> Union[float, int]:
    return a + b
Run Code Online (Sandbox Code Playgroud)

然后我收到“错误:重载函数签名 2 永远不会匹配:签名 1 的参数类型相同或更广泛在 1 个文件中发现 1 个错误(已检查 1 个源文件)”

我不明白为什么签名 1(即浮点数)的参数类型比签名 2(即整数)更广泛。

这里发生了什么?

python type-hinting mypy python-typing

5
推荐指数
1
解决办法
1332
查看次数

标签 统计

mypy ×1

python ×1

python-typing ×1

type-hinting ×1