Подсказки типа при распаковке кортежа?

#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> не может использовать какой-либо синтаксический контекст, где присвоение переменной является законным…