Мы можем использовать объекты в качестве аннотаций типов:
def foo(a: int) -> str:
return str(a)
Мы также можем использовать строковые литералы в качестве аннотаций типов:
def foo(a: "int") -> "str":
return str(a)
Но как мы можем использовать строковые литералы для более сложных случаев, например, когда мы принимаем несколько типов аргументов? Если бы я использовал объекты, я бы сделал:
from typing import Union
def foo(a: Union[int, str]) -> str:
return str(a)
Что эквивалентно этому, если мы использовали строковые литералы? Существует ли синтаксис, позволяющий мне использовать строковые литералы в таких сложных случаях?