либо вы напрямую аннотируете основной объект, то есть < /p>
Код: Выделить всё
# (1)
def foo(*args: int):
pass
Код: Выделить всё
# (2)
def foo(*args: tuple[int, ...]):
pass
Код: Выделить всё
# (3)
def foo(*args: *tuple[int, str]):
pass
< /code>
Я не понимаю, что эти определения могут быть взаимно инклюзивными. Например, что, если я захочу использовать (1) для аннотирования, но я хочу сказать, что аннотация каждого элемента - это Tuple [int, ...]
Кроме того, что если я аннотирую что -то вроде Tuple [str, int] < /code>? Примет ли это как форма (1), и воспринимать его только как форму (2), если тип - что -то вроде кортежа [тип, elipsis] ? Каковы точные предварительные условия для аннотации типа, чтобы быть в нем, чтобы его обрабатывали с помощью каждой формы? >. Будет ли использование обычного аннотации дикта (то есть без __annotations __ атрибут) будет рассматриваться как форма (1), когда использование TypedDict будет рассматриваться как (2)? Какие правила здесь?
Подробнее здесь: https://stackoverflow.com/questions/794 ... and-kwargs