如何键入提示返回类型取决于参数输入类型的函数?

如何键入提示返回类型取决于参数输入类型的函数?,第1张

如何键入提示返回类型取决于参数输入类型的函数

这正是函数重载的目的。

简而言之,您可以执行以下 *** 作:

from typing import overload# ...snip...@overloaddef map_type(value: int) -> MyEnum: ...@overloaddef map_type(value: str) -> MyCustomClass: ...def map_type(value: Union[int, str]) -> Union[MyEnum, MyCustomClass]:    if isinstance(value, int):        return MyEnum(value)    elif isinstance(value, str):        return MyCustomClass(value)    raise TypeError('Invalid input type')

现在,当您这样做时

map_type(3)
,mypy将了解返回类型为
MyEnum

在运行时,唯一要实际运行的功能是最后一个功能-前两个功能被完全覆盖和忽略。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5667435.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存