LINUX.ORG.RU

История изменений

Исправление cvprog, (текущая версия) :

я тоже не видел, пока не нарвался )))

m1

from dataclasses import dataclass

@dataclass
class A:
    x: int

@dataclass
class B:
    y: str

if __name__ == '__main__':
    from m2 import data_save
    a = A(x=1)
    data_save(a)

m2

from m1 import A, B


def data_save(obj) -> None:
    if isinstance(obj, A):
        print('save A')
    elif isinstance(obj, B):
        print('save B')
    else:
        print('тип не опознан')

запускаем m1

тип не опознан

P.S. вариант починки этого учебного примера

if __name__ == '__main__':
    from m1 import A, B
    from m2 import data_save
    a = A(x=1)
    data_save(a)

а в проекте в целом строго из одной точки подключать все модули, что тоже может быть не простой задачей

Исправление cvprog, :

я тоже не видел, пока не нарвался )))

m1

from dataclasses import dataclass

@dataclass
class A:
    x: int

@dataclass
class B:
    y: str

if __name__ == '__main__':
    from m2 import data_save
    a = A(x=1)
    data_save(a)

m2

from m1 import A, B


def data_save(obj) -> None:
    if isinstance(obj, A):
        print('save A')
    elif isinstance(obj, B):
        print('save B')
    else:
        print('тип не опознан')

запускаем m1

тип не опознан

P.S. вариант починки этого учебного примера

Исходная версия cvprog, :

я тоже не видел, пока не нарвался )))

m1

from dataclasses import dataclass

@dataclass
class A:
    x: int

@dataclass
class B:
    y: str

if __name__ == '__main__':
    from m2 import data_save
    a = A(x=1)
    data_save(a)

m2

from m1 import A, B


def data_save(obj) -> None:
    if isinstance(obj, A):
        print('save A')
    elif isinstance(obj, B):
        print('save B')
    else:
        print('тип не опознан')

запускаем m1

тип не опознан