1. ホーム
  2. python

[解決済み】AttributeError: 'module'オブジェクトには属性がありません。

2022-01-20 15:49:06

質問

2つの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, が出てきます。

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()