python中的循环导入问题。怎么解决呢?

时间:2020-04-20 20:21:50

标签: python circular-dependency

Helloooo!

通常,循环导入意味着代码中存在结构问题,但是我看不到任何其他方法可以解决此问题。 这是我目前的情况:

我有两个班级:ProjectPreset

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 :(得分:0)

您可以将第一个导入项移至get_preset函数中。