Python文件-相互导入

Python文件-相互导入,python,import,compilation,package,importerror,Python,Import,Compilation,Package,Importerror,我想让我的两个python文件相互导入一些方法。这似乎给了我导入错误 示例: 文件_A.py: from file_B import do_B_stuff 文件_B.py: from file_A import do_A_stuff 我之所以尝试这样做,是因为我希望以对我来说直观的方式来组织我的项目,而不是按照对编译器来说有意义的方式来组织项目 有办法做到这一点吗 谢谢 不要直接在其他模块中使用名称 文件A.py 文件_B.py 虽然这种设置现在对你来说可能是直观的,但循环依赖被认为是糟糕的

我想让我的两个python文件相互导入一些方法。这似乎给了我导入错误

示例:

文件_A.py:

from file_B import do_B_stuff
文件_B.py:

from file_A import do_A_stuff
我之所以尝试这样做,是因为我希望以对我来说直观的方式来组织我的项目,而不是按照对编译器来说有意义的方式来组织项目

有办法做到这一点吗


谢谢

不要直接在其他模块中使用名称

文件A.py 文件_B.py
虽然这种设置现在对你来说可能是直观的,但循环依赖被认为是糟糕的软件工程实践。@larsmans-是的,我知道。不过我不确定我是否同意。我认为这是从C++时代遗留下来的,你必须更接近编译器。我认为,如果程序员的工作更轻松,那么我们就可以用时间完成更多的工作,而不必担心循环依赖之类的事情,这会更好。我记得我不得不担心内存泄漏。现在我几乎没听说过这个词。可能还有其他反对循环依赖性的好论据,但我从未听说过。这是一个耦合和可重用性的问题。相互依赖的模块(a)总是强耦合的,这可能是不好的,也可能是不可避免的,并且(b)不能在没有彼此的情况下重用,因此它们也可以是单个模块。@larsmans-是的,这实际上是一个很好的观点。更多的代码重用意味着我可以在更短的时间内完成更多的工作。实际上,为了回应你的观点,我移动了一些代码。
import file_B

def something():
    file_B.do_B_stuff
import file_A

def something():
    file_A.do_A_stuff