gpt4 book ai didi

python - python中的简单交叉导入

转载 作者:IT老高 更新时间:2023-10-28 21:17:34 26 4
gpt4 key购买 nike

我想将不同类中的代码分开并将它们放到不同的文件中。但是这些类是相互依赖的。

ma​​in.py:

from lib import A, B

def main():
a = A()
b = B()
a.hello()
b.hello()

if __name__ == '__main__':
main()

lib/_init_.py:

from a import A
from b import B

lib/a.py:

import lib.B

class A():
def __init__(self):
print "A"

def hello(self):
print "hello A"
b = B()

lib/b.py:

import lib.A

class B():
def __init__(self):
print "B"

def hello(self):
print "hello B"
a = A()

是否可以在 Python 中做到这一点?

编辑:

我收到此错误消息:

pydev debugger: starting
Traceback (most recent call last):
File "eclipse-python/plugins/org.python.pydev_2.7.1.2012100913/pysrc/pydevd.py", line 1397, in <module>
debugger.run(setup['file'], None, None)
File "eclipse-python/plugins/org.python.pydev_2.7.1.2012100913/pysrc/pydevd.py", line 1090, in run
pydev_imports.execfile(file, globals, locals) #execute the script
File "main.py", line 2, in <module>
from lib import A, B
File "lib/__init__.py", line 1, in <module>
from a import A
File "lib/a.py", line 1, in <module>
import lib.B
ImportError: No module named B

最佳答案

您可以在 hello 函数中导入另一个模块,而不是导入顶部的模块。

class B():
def __init__(self):
print "B"

def hello(self):
from lib import A
print "hello B"
a = A()

关于python - python中的简单交叉导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17226016/

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