AttributeError: 'module' object has no attribute
当使用相互顶级导入运行 Python 模块 a.py 时,您会遇到错误“AttributeError:‘模块’对象没有属性‘hi’”。发生此错误的原因是两个模块的 import 语句中的设置有问题。
在 a.py 中,导入模块 b 并调用其 hi() 函数。然而,在引用的b.py中,没有hi属性。这会导致错误,表明在 a 的上下文中无法从 b 访问 hi() 函数。
要纠正此问题,通常不建议像这样进行相互顶级导入。相反,请考虑在函数中导入模块,如下所示:
# In b.py:
def cause_a_to_do_something():
import a
a.do_something()
通过将导入封装在 b.py 中的函数内,您可以允许 a.py 安全地导入 b 而不会触发错误。此外,此方法可确保导入操作仅发生一次,尽管该函数被多次调用。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3