#python #python-3.x #mypy #python-typing
#python #python-3.x #подсказки типа #ввод текста на python #повторяемый-распаковка
Вопрос:
Можно ли использовать подсказки типа при распаковке кортежа? Я хочу это сделать, но это приводит к SyntaxError
:
from typing import Tuple
t: Tuple[int, int] = (1, 2)
a: int, b: int = t
# ^ SyntaxError: invalid syntax
Ответ №1:
Согласно PEP-0526, сначала следует аннотировать типы, а затем выполнять распаковку
a: int
b: int
a, b = t
Комментарии:
1. По-прежнему вызывает предупреждение: переопределенный ‘a’, определенный выше, без использования
2. @tribbloid Я понимаю, что, когда я действительно уже определил
a
ранее, вы уверены, что не сделали этого?3. @tribbloid Это если переменная переопределена, например
a = int(a)
, или другие переназначения. Если вы работаете с mypy для статической проверки типов, используйте--allow-redefinition
, чтобы избежать предупреждения4. это печально, как на земле <variable>:<typehint> не может использовать какой-либо синтаксический контекст, где присвоение переменной является законным…