我有一个函数:
T = typing.TypeVar('T', str, list[str])
def f(arg: T) -> T:
...
AFAICS 这意味着以下内容有效:
f(str)
→str
f(list[str])
→list[str]
或者换句话说,当给定一个字符串时,返回一个字符串;当给出字符串列表时,返回字符串列表。
现在我想表达一个函数的类型,当给定一个字符串时返回一个bool
,如果给定一个字符串列表返回一个list[bool]
.
我该怎么做?
最佳答案
感谢@koyeung 评论中的提示
@typing.overload
def f(arg: str) -> bool:
...
@typing.overload
def f(arg: list[str]) -> list[bool]:
...
def f(arg):
if isinstance(arg, list):
return ... # implementation for list
... # implementation for str
关于python 输入 : result depending on arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74188536/