Mypy сообщает об ошибке, когда я назначаю список[int] списку[float] или назначаю Дикт[str, int] Дикту[str, float]

#python #mypy

Вопрос:

 a: List[float]  c = [1,2]  a = c  b: Dict[str, float]  d = {"1": 1, "2": 2}  b = d  

Есть ли способ сделать назначение законным, кроме использования Sequence и Mapping вместо List и Dict

Комментарии:

1. Нет, потому что это незаконно, потому что изменяемые контейнеры инвариантны.

2. Я имею в виду, может быть, такие методы, как использование TypeVar для определения типа, содержащего int и float ?

3. я думаю, тебе не помешал бы профсоюз

4. Ты можешь cast .

5. a: List[Union[int, float]] ?