MyPy дает мне incompatible type error
, когда ожидаемый тип параметра функции Dict[Union[CustomObject1, CustomObject2], ...]
, и я передаю Dict[CustomObject1, ...]
.
Учитывайте следующее:
from typing import Dict, List, Union
import dataclasses
@dataclasses.dataclass(frozen=True)
class MyKey:
myStr: str
@dataclasses.dataclass(frozen=True)
class MySecondKey:
myStr: str
@dataclasses.dataclass
class CustomDataObject:
dataProp: Dict[MySecondKey, Dict[str, List[Dict[str, int]]]]
sample_data = {MySecondKey(myStr="a"): {"foo": [{"bar": 0}]}}
sample_prop = CustomDataObject(dataProp=sample_data).dataProp
def dummy_func(
some_data: Dict[
Union[MyKey, MySecondKey], Dict[str, List[Dict[str, int]]]
],
):
print(some_data)
print(dummy_func(sample_prop))
Ошибка: Argument 1 to "dummy_func" has incompatible
type; expected "Dict[Union[MyKey, MySecondKey], Dict[str, List[Dict[str, int]]]]"
.
Почему это происходит? Как я могу решить эту проблему?