如何使用字符串字面类型注释来适用于多个可能的参数类型?

3
我们可以使用对象作为类型注解:

Original Answer翻译成"最初的回答"

def foo(a: int) -> str:
    return str(a)

我们也可以将字符串文字用作类型注释:

我们还可以使用字符串文字作为类型注释:

def foo(a: "int") -> "str":
    return str(a)

但是,当我们需要处理多个参数类型时,如何使用字符串字面值呢?如果我使用对象,我会这样做:

Original Answer翻译成"最初的回答"

from typing import Union

def foo(a: Union[int, str]) -> str:
    return str(a)

如果我们使用字符串字面量,这个的等效写法是什么?是否有一种语法可以让我在这种复杂情况下使用字符串字面量?"最初的回答"

顺便问一下,你在最后一个例子中是不是指的 List[Union[int, str]] - undefined
@gmds 我也这么认为,所以我进行了更新。 - undefined
1个回答

3
你只需要将引号放在它周围即可:“最初的回答”。
from typing import Union

def foo(a: "Union[int, str]") -> "str":
    return str(a)

@multigoodverse:你仍然需要导入你所使用的工具,以理解Union是什么意思(如果你没有使用任何需要理解注释含义的工具,那么使用注释就没有太大意义)。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接