gpt4 book ai didi

python - 如何从该类包含的类中导入类

转载 作者:行者123 更新时间:2023-12-01 04:37:49 26 4
gpt4 key购买 nike

我遇到了一个奇怪的问题,我无法在整个互联网上找到答案(或者我不知道如何提问)。

我有模块AAA.py

from BBB import BBB
class AAA():
def test(self):
print 'AAAA'
a = BBB()

和模块BBB.py

class BBB():
def __init__(self):
print 'BBB'

然后当我打电话时

a = AAA()
a.test()

一切都按预期进行,我看到了输出

AAAA
BBB

但是当我尝试从模块 BBB.py

导入和使用 AAA 类时
from AAA import AAA
class BBB():
def __init__(self):
print 'BBB'

我收到以下错误

ImportError: cannot import name AAA

有什么建议吗?我无法在 Python 中创建循环依赖项?我在 Ubuntu 上使用 Python 2.7.6 版本

最佳答案

确实 - 如果 AAA.py 在顶层从 BBB.py 导入某些内容,反之亦然,则它不会按预期工作。

有两种方法可以解决这个问题:

  1. 相互导入模块。这样,它们都作为 namespace 出现,并将在导入过程中填充。

    因此,只需import BBB并使用BBB.BBB()来实例化该类:

    import BBB
    class AAA():
    def test(self):
    print 'AAAA'
    a = BBB.BBB()
  2. 在需要的地方进行导入:

    class AAA():
    def test(self):
    from BBB import BBB
    print 'AAAA'
    a = BBB()

    这样两个模块之间的联系就“松散”了,不那么紧密了。

关于python - 如何从该类包含的类中导入类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31429641/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com