如何在程序中实现控制函数并避免属性错误:'module'对象没有属性错误



我有一个类似于这个问题的simlair问题:AttributeError:';模块';对象没有属性

我正在进行一个相互的顶级导入,这导致我出现AttributeError:"module"对象没有属性错误,所以我不确定我是否可以在函数中导入,因为我基本上是在导入一个控制所有其他模块的文件。

下面是一个示例(file2.py):

import file1
count = 0
while count < file1.number_of_loops:
 .....

我的函数是由控制变量触发的,所以我无法在函数本身中导入。除了创建一个单独的文件来控制之外,有没有一种方法可以引用另一个文件中的变量,而不进行相互的顶级导入?

正如一条评论所指出的,如果您使用file1.py来存储一些配置变量,那么最好看看处理该配置的其他方法。

在我看来,解决问题的一个简单方法是将所有这些变量移动到另一个名为settings.py的模块,这样您就可以从那里获得配置,而不必使用任何相互导入。

我将建议不要从控制"所有其他模块"的模块导入。

我的建议是将所有的控制代码放在函数(或类)中,然后将函数和参数导入到需要执行它们的地方。

例如,file2.py:

def loop_control(num_loops):
    count = 0
    while count < num_loops:
        # ...

另一个文件:

import file1
import file2
file2.loop_control(file.number_of_loops)

如果您需要来回交流此控件的结果,您可以考虑为此构建一个Manager(以您喜欢的方式实现)。

相关内容

最新更新