Предположим, у меня есть функция, как это:намеков типа Python и `* args`
def foo(*args):
for x in args:
print(x)
и давайте говорить, что я хочу сказать, что все элементы args
являются int
; Каков правильный способ выразить это как PEP 0484? Должен ли я сделать что-то вроде
from typing import Tuple
def foo(*args: Tuple[int, ...]) -> None:
for x in args:
print(x)
или что-то вроде
def foo(*args: int) -> None:
for x in args:
print(x)
или что-то совсем другое?
В частности, я пытаюсь использовать подсказки типов эффективно в PyCharm, и ни одно из решений, о которых я думал, похоже, помогает PyCharm понять, что x
должен быть int
.
Ваш первый подход является правильным, используйте 'Кортеж [ИНТ, .. ] ',' * args: int' всегда будет ошибочным, так как Python создаст кортеж для '* args' с переданными избыточными позиционными значениями. –