Циркулярная импортная эмиссия в python. Как это решить? - PullRequest
0 голосов
/ 20 апреля 2020

Helloooo!

Обычно циклический импорт означает структурную проблему в коде, но я не вижу другого способа исправить это. Это мой текущий случай:

У меня есть два класса: Project и Preset

Project имеет метод, который будет генерировать Preset, что-то вроде:

from preset import Preset

class Project():

    def __init__(self, project):
        self._project_name = project

    def get_preset(self, preset_name):
        return Preset(preset_name, self._project_name)

Затем у меня есть класс Preset, которому также нужно имя Project для инициализации. Что-то вроде:

from project import Project

class Preset():

    def __init__(self, preset_name, project_name):
        self._project = Project(project_name)

Вообще говоря, я всегда буду создавать классы Presets через Project с помощью метода get_preset, но я также хочу дать возможность создать Preset напрямую, без необходимости сначала создавать Project.

Есть идеи, чтобы избавиться от этой круговой рекурсии?

Спасибо !!

1 Ответ

0 голосов
/ 20 апреля 2020

Вы можете переместить первый импорт в функцию get_preset.

...