我有一个带有多个默认值的 kwargs 的函数。其中之一(在中间的某个地方)是控制返回类型的布尔切换。
\n我想为此方法创建两个重载,Literal[True/False]但保留默认值。
我的想法如下:
\nfrom typing import overload, Literal\n\n@overload\ndef x(a: int = 5, t: Literal[True] = True, b: int = 5) -> int: ...\n\n@overload\ndef x(a: int = 5, t: Literal[False] = False, b: int = 5) -> str: ...\n\ndef x(a: int = 5, t: bool = True, b: int = 5) -> int | str:\n if t:\n return 5\n return "asd"\nRun Code Online (Sandbox Code Playgroud)\n但 mypy 提出:
\n\n\n …错误:重载函数签名 1 和 2 与不兼容的返回类型重叠
\n