交叉导入时模块导入似乎失败。
我的prog.py
文件:
import sys
sys.path.append(".")
from m1 import f1
并且m1.py
:
from m2 import f2
def f1():
pass
并且m2.py
:
from m1 import f1
def f2():
pass
我的模块m1需要用到模块2的一些函数,模块2需要用到模块1的一些函数,所以我按照上面的方式导入。但是 Python (python3) 不允许我这样做。这是例外:
Traceback (most recent call last):
File "prog.py", line 3, in <module>
from m1 import f1
File "/temp/m1.py", line 1, in <module>
from m2 import f2
File "/temp/m2.py", line 1, in <module>
from m1 import f1
ImportError: cannot import name 'f1'
我知道它是交叉导入,但如何解决这个问题?
您可以将交叉导入移动到文件末尾,以便您导出的所有内容都已定义:
和 m1.py:
def f1():
pass
from m2 import f2
和 m2.py:
def f2():
pass
from m1 import f1
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句