你如何避免Python中的循环导入?

时间:2014-04-13 06:13:00

标签: python import circular-dependency

当您的项目包含两个或更多文件并且最终需要导入所有内容时,您如何管理这种情况?

--main.py
---some-stuff.py
---some-stuff2.py

我不能寻求循环依赖,但程序的结构需要它。 有没有办法管理这种情况,除了在一个文件中完成所有工作,包括所有代码?

1 个答案:

答案 0 :(得分:1)

标准答案

将数据位作为参数传递给您在some-stuff.py中调用的函数。

如果您的some-stuff.py定义的函数foo需要bar中定义的某个字段main,请将foo的定义更改为{{1}当foo(bar, <other args>)内的脚本调用main.py时,它可以将其称为foo

解决您的限制

你提到它是“通过将参数传递给某些东西中的函数调用而无法实现的,因为那时变量可能没有它们的值”。

如果foo(bar, <other args>)内的函数在给定值之前需要来自some-stuff的变量,那么您应该将函数分解为多个函数,以便在函数值之前不调用该函数要求可用。无论如何,这可能会改善代码的模块化。