【发布时间】:2017-07-01 15:37:52
【问题描述】:
我正在编写一个 Python 程序(使用 Pycharm),其中大约一半的代码被类和函数占用。该程序现在很长,并且写在一个文件中。 如果我可以将类、函数和其余代码分成 3 个单独的文件,将会节省大量时间。目前,由于循环导入,我无法执行此操作,这导致“from FunctionDocument import *”语句在写入主文档时不起作用。
我知道循环导入是不专业且不推荐的。但对我来说,为什么不能简单地添加一两行来指示 Python 将 3 个单独的文件视为全部编写在一个单独的文件中是不可能的 - 即使它们相互依赖也是如此。
我知道这可以通过重写代码使其成为非循环来解决,并且创建虚拟环境也可以解决问题。但是真的没有别的办法了吗?
【问题讨论】:
-
为什么你认为循环进口是唯一的方法?
-
你看过this other question的答案了吗?它是搜索“python 循环导入”的首批结果之一,其中包含支持和反对循环导入的各种意见。 (嗯,不完全是 for,但至少不那么重要)。我链接到的具体答案解释了一些可能对您的情况有所帮助的循环导入流程。
-
你总是可以编写一个实用程序,在文件运行之前将它们粘在一起......我也很感兴趣,如果 Python 可以自己做到这一点
-
您可以将文件连接在一起并将结果提供给 Python 解释器。如何做到这一点取决于您的操作系统。在 Windows 上,在命令提示符下,您可以使用
type script1.py script2.py > temp.py & python temp.py。基于 Unix 的操作系统有更优雅的方式来做同样的事情。
标签: python import circular-reference