我有两个 python 模块:
a.py
import b
def hello():
print "hello"
print "a.py"
print hello()
print b.hi()
b.py
import a
def hi():
print "hi"
当我跑步时a.py
, I get:
AttributeError: 'module' object has no attribute 'hi'
错误是什么意思?我如何解决它?
你们有相互的顶级导入,这几乎总是一个坏主意。
如果你确实必须在 Python 中进行相互导入,那么方法就是在函数中导入它们:
# In b.py:
def cause_a_to_do_something():
import a
a.do_something()
现在 a.py 可以安全地做import b
不会造成问题。
(乍一看可能会出现这样的情况cause_a_to_do_something()
效率会非常低,因为它会import
每次调用它时,但实际上导入工作只在第一次完成。第二次及后续导入模块时,操作很快。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)