【问题标题】:Python files - import from each otherPython 文件 - 相互导入
【发布时间】:2012-03-27 09:35:08
【问题描述】:

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

示例:

file_A.py:

from file_B import do_B_stuff

file_B.py:

from file_A import do_A_stuff

我尝试这样做的原因是因为我想以对我来说直观有意义的方式来组织我的项目,而不是按照对编译器有意义的方式来组织它。

有没有办法做到这一点?

谢谢!

【问题讨论】:

  • 虽然这种设置现在对你来说可能很直观,但循环依赖被认为是不好的软件工程实践。
  • @larsmans - 是的,我知道。我不确定我是否同意。我认为这是 C++ 时代遗留下来的,你必须更接近编译器。我认为现在如果程序员的事情变得更容易会更好,这样我们就可以用我们的时间完成更多工作,而不必担心诸如循环依赖之类的事情。我记得不得不担心内存泄漏。现在我什至几乎没有听到提到的这个词。可能还有其他我没有听说过的反对循环依赖的好论据。
  • 这是一个耦合和可重用性的问题。相互依赖的模块 (a) 始终是强耦合的,这可能是坏的或不可避免的,并且 (b) 没有彼此就不能重用,所以它们也可以是一个单独的模块。
  • @larsmans - 是的,这实际上是一个非常好的观点。更多的代码重用意味着我可以在更短的时间内完成更多工作。为了回应您的观点,我实际上移动了一些代码。

标签: python import compilation package importerror


【解决方案1】:

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

file_A.py

import file_B

def something():
    file_B.do_B_stuff

file_B.py

import file_A

def something():
    file_A.do_A_stuff

【讨论】:

    猜你喜欢
    • 2021-12-04
    • 2017-11-16
    • 1970-01-01
    • 2015-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-24
    相关资源
    最近更新 更多