Wiem, że problem importu kołowego w Pythonie pojawiał się już wiele razy i czytałem te dyskusje. Komentarz, który pojawia się wielokrotnie w tych dyskusjach, jest taki, że import cykliczny jest oznaką złego projektu i kod powinien zostać zreorganizowany, aby uniknąć importu cyklicznego.
Czy ktoś mógłby mi powiedzieć, jak uniknąć importu cyklicznego w takiej sytuacji?: Mam dwie klasy i chcę, aby każda klasa miała konstruktor (metodę), który pobiera instancję drugiej klasy i zwraca instancję klasy.
Dokładniej, jedna klasa jest zmienny, a jeden jest niezmienny. Klasa niezmienna jest potrzebna do mieszania, porównywania i tak dalej. Klasa mutowalna jest również potrzebna do robienia rzeczy. Jest to podobne do zestawów i zamrożonych zestawów lub do list i krotek.
Mógłbym umieścić obie definicje klas w tym samym module. Czy są jakieś inne sugestie?
Przykładem zabawki może być klasa A z atrybutem będącym listą i klasa B z atrybutem będącym krotką. Następnie klasa A ma metodę, która pobiera instancję klasy B i zwraca instancję klasy A (poprzez konwersję krotki na listę) i podobnie klasa B ma metodę, która pobiera instancję klasy A i zwraca instancję klasy B (konwertując listę na krotkę).