Python: подсказка о типе теневой переменнойPython

Программы на Python
Anonymous
Python: подсказка о типе теневой переменной

Сообщение Anonymous »

Поскольку Python является динамически типизированным языком, я ожидал, что можно будет скрыть подсказку типа переменной.
Можно ли в какой-то момент обновить подсказку типа переменной?< /p>
В следующем примере я ожидал, что тип классов будет list[tuple[int, str]] | Нет, потому что я меняю значение в цикле if.
Я знаю, что могу создать новую переменную для списка, но предпочитаю, чтобы новое значение затеняло словарь, поскольку в этом больше нет необходимости .
Итак, можно ли сделать это без введения новой переменной?

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

def foo(classes: Optional[dict[int, str]] = None):
if classes is not None:
classes = list(classes.items()) # `classes` type is not updated
classes.sort(key=lambda x: x[0])

a = classes # expecting list[tuple[int, str]] | None, got dict[int, str] | None

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

> mypy .\foo.py
foo.py:6: error: Incompatible types in assignment (expression has type "List[Tuple[int, str]]", variable has type "Optional[Dict[int, str]]")
foo.py:7: error: "Dict[int, str]" has no attribute "sort"
Found 2 errors in 1 file (checked 1 source file)
Изображение
Изображение



Подробнее здесь: https://stackoverflow.com/questions/740 ... -type-hint

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