AttributeError: 'module' object has no attribute
当运行具有相互顶级导入的 Python 模块 a.py 时,您会遇到错误“AttributeError:‘模块’对象没有属性‘hi’”。发生此错误的原因是两个模块的 import 语句中的设置有问题。
在 a.py 中,导入模块 b 并调用其 hi() 函数。然而,在引用的b.py中,没有hi属性。这会导致错误,表明在 a 的上下文中无法从 b 访问 hi() 函数。
要纠正此问题,通常不建议进行这样的相互顶级导入。相反,请考虑按如下方式在函数内导入模块:
<code class="python"># In b.py: def cause_a_to_do_something(): import a a.do_something()</code>
通过将导入封装在 b.py 中的函数内,您可以允许 a.py 安全地导入 b 而不会触发错误。此外,这种方法可确保导入操作仅发生一次,尽管该函数被多次调用。
以上是如何通过相互顶级导入解决 Python 中的'AttributeError:'模块'对象没有属性”问题?的详细内容。更多信息请关注PHP中文网其他相关文章!