Я знаю, что проблема циклического импорта в python возникла много раз раньше, и я прочитал эти обсуждения. Комментарий, который неоднократно повторяется в этих обсуждениях, заключается в том, что циклический импорт является признаком плохой конструкции, и код должен быть реорганизован, чтобы избежать циклического импорта.
Может ли кто-нибудь сказать мне, как избежать циклического импорта в этой ситуации?: У меня есть два класса, и я хочу, чтобы каждый класс имел конструктор (метод), который принимает экземпляр другого класса и возвращает экземпляр класса.
Более конкретно, один класс является изменяемым, а один неизменным. Требуется неизменный класс для хэширования, сравнения и т.д. Переменный класс необходим, чтобы что-то делать. Это похоже на наборы и фризонсет, или на списки и кортежи.
Я мог бы поместить оба определения классов в один и тот же модуль. Есть ли другие предложения?
Примером игрушки может быть класс A, который имеет атрибут, который является списком и классом B, который имеет атрибут, который является кортежем. Затем класс A имеет метод, который принимает экземпляр класса B и возвращает экземпляр класса A (путем преобразования кортежа в список), и аналогично класс B имеет метод, который принимает экземпляр класса A и возвращает экземпляр класса B (путем преобразования списка в кортеж).