Python:交叉导入模块失败

数据

交叉导入时模块导入似乎失败。

我的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] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章