Mypy жалуется, когда я печатаю и переназначаю переменнуюPython

Программы на Python
Anonymous
Mypy жалуется, когда я печатаю и переназначаю переменную

Сообщение Anonymous »

Рассмотрим минимально воспроизводимый пример:

Код: Выделить всё

a = ("a", "b", "c")
a = list(a)
Я привожу кортеж к списку и переназначаю его ему. Считается ли это объективно хорошей практикой?
Для меня это так. Представьте себе, что функция некоторого пакета возвращает кортеж, но вам нужен список в вашем коде и вы не хотите носить с собой слишком много переменных. Я не вижу причин, по которым нельзя позволять это делать. Есть ли какие-либо ошибки в моих рассуждениях?
Я спрашиваю, потому что mypy жалуется:

Код: Выделить всё

error: Incompatible types in assignment (expression has type "list[str]", variable has type "tuple[str, str, str]")  [assignment]
Очевидное решение — сделать что-то вроде:

Код: Выделить всё

a_tpl = ("a", "b", "c")
a_lst = list(a_tpl)
но похоже на привязку типа к имени переменной, и я не уверен, что это лучшая практика, чем переназначение, которое я описал выше.

Подробнее здесь: https://stackoverflow.com/questions/790 ... a-variable

Вернуться в «Python»