”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何通过相互顶级导入解决 Python 中的“AttributeError:‘模块’对象没有属性”问题?

如何通过相互顶级导入解决 Python 中的“AttributeError:‘模块’对象没有属性”问题?

发布于2024-11-08
浏览:783

How to Resolve the \

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 而不会触发错误。此外,此方法可确保导入操作仅发生一次,尽管该函数被多次调用。

版本声明 本文转载于:1729398916如有侵犯,请联系[email protected]删除
最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3