在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模块文档)
答案 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