从单独模块中的类访问方法时的Python循环导入

特里斯坦·维尔杜斯科

我有两个模块,每个模块都包含一个类。在每个模块中,我想从另一个模块中的类中引用方法。我已经设置了一个小班级来帮助我理解这个概念。我将一个模块导入另一个模块,但仍然出现循环导入错误。据我所知,这是正确的做法,但我仍然遇到错误。这是我的示例类:

a.py 模块:

import b
class A():
    def __init__(self):
        print("A has run")
    def aa():
        print("aa has run")

b.B.bb()

b.py 模块:

import a
class B():
    def __init__(self):
        print("B has run")
    def bb():
        print("bb has run")
        # Run method from class in seperate module
        a.A.aa()

这是我的错误: AttributeError: partially initialized module 'b' has no attribute 'B' (most likely due to a circular import)

C_Z_

如果a.py正在导入b.py并且b.py正在导入a.py,那就是循环导入。通常,您希望重构您的代码,以便您的模块不需要相互导入。如果没有更多地了解您的实际用例,很难给出建议,但可能是这样的:

a.py 模块:

class A():
    def __init__(self):
        print("A has run")
    def aa():
        print("aa has run")

b.py 模块:

import a
class B():
    def __init__(self):
        print("B has run")
    def bb():
        print("bb has run")
        # Run method from class in seperate module
        a.A.aa()

c.py 模块

import b
b.B.bb()

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在python类中导入模块

Python中的循环模块依赖性和相对导入

如何在Python中单独导入子模块?

尝试导入具有类类型参数的类方法的模块时发生导入错误

在单独的文件中定义时,将Ruby类添加到模块中

如何从模块导入的模板文字访问类?

在顶部导入json模块时如何在类的方法中调用json.load

在类中导入模块,但是在类方法中使用模块时出现NameError

PYTHON从模块中的类导入方法

使用访问修饰符(如python模块中的下划线)控制应如何访问定义的变量或模块,函数,导入的类?

从python Django中的导入模块中导入当前模块(导入循环)

在Python中访问导入模块中的变量

Python:导入错误。其他类的访问方法

单独模块中的类之间的Sqlalchemy关系

Python:仅获取使用dir()在导入模块中定义的类?

在单独的线程上创建类实例,同时仍然能够在python中访问其方法

类具有相同方法时,从ruby中的“主”模块访问方法

导入swig生成的模块时,Python抱怨缺少删除方法

在python中的单独类中访问单独方法上的列表

如何访问单独类中的方法

如何从单独的类python中的方法操作类中的属性

如果模块 B 中的方法从模块 A 中获取类,是否需要在模块 B 中导入模块 A?

Python - 导入类模块时出现 NameError

如何导入包含循环依赖类的模块?

当我在 python 中编写自己的模块时,导入模块的正确方法是什么?

python中根据类名快速找到要导入的模块

删除单独列表中的项目时,for 循环停止 - Python

从位于 Python 中单独文件中的方法访问类变量

Python 模拟未导入的类中的方法