无法拆分大型Python模块

时间:2015-11-06 15:55:06

标签: python

在Python 2.7中,我得到了

  

'模块'没有属性

和/或

  

'名称'未定义

当我尝试拆分一个大的python文件时出现

错误。

(我已经阅读了类似的帖子和Python模块文档)

假设您有一个结构如下的python文件:

<imports>

<50 global variables defined>

<100 lengthy functions that each use most or all of the globals 
 defined above, and also call each other>

<main() that calls some of the functions and uses the globals>

因此,我可以轻松地将功能组分类在一起,为每个组创建一个python文件,并将它们放在那里。问题是每当我尝试从主python文件中调用它们中的任何一个时,我都会得到上面列出的错误。我认为这个问题与循环依赖有关。由于所有函数都依赖于全局变量,因此它们是循环相关的。

如果我有main_file.py,group_of_functions_1.py和group_of_functions_2.py,

main_file.py将包含:

import group_of_functions_1.py
import group_of_functions_2.py

和group_of_functions_1.py将有

import main_file.py
import group_of_functions_2.py

和group_of_functions_2.py将有

import main_file.py
import group_of_functions_1.py

无论我是否使用&#34; import package_x&#34;或者&#34;来自package_x import *&#34;问题依然存在。

如果我采取摆脱全局变量的路线,那么大多数函数将有50个参数,它们将被传递,然后还需要返回

清理它的正确方法是什么?

(我已经阅读了类似的帖子和Python模块文档)

1 个答案:

答案 0 :(得分:2)

您的错误的一个原因可能如下:

import group_of_functions_1.py
import group_of_functions_2.py

导入时,不要将.py添加到模块名称的末尾。这样做:

import group_of_functions_1
import group_of_functions_2