История изменений
Исправление Aswed, (текущая версия) :
Лол, так у тебя не в типах проблема, а в циклических зависимостях. Нельзя делать в m1 import m2
, а потом сразу же в m2 делать import m1
. Сделай в m2 что-то типа такого:
@lru_cache(maxsize=1)
def required_classes() -> Dict[type, Callable]:
from m1 import A, B
from ... import ... # прочие импорты
return {A: method2, B: method1, ...}
def data_save(obj: Any) -> None:
methods = required_classes()
for cls, method in methods.items():
if isinstance(obj, cls):
return method(obj)
Исходная версия Aswed, :
Лол, так у тебя не в типах проблема, а в циклических зависимостях. Нельзя делать в m1 import m2
, а потом сразу же в m2 делать import m1
. Сделай в m2 что-то типа такого:
@lru_cache(maxsize=1)
def required_classes() -> Dict[type, Callable]:
from m1 import A, B
from ... import ... # прочие импорты
return {A: method2, B: method1, ...}
def data_save(obj) -> None:
methods = required_classes()
for cls, method in methods.items():
if isinstance(obj, cls):
return method(obj)