これが2つのpyファイルです
aa.py
import bb
b = 3
bb.foo()
bb.py
import aa
def foo():
print(aa.b)
aa.pyから実行すると、このエラーが発生しました
Traceback (most recent call last):
File "D:\pyproj\Mytest\src\aa.py", line 7, in <module>
import bb
File "D:\pyproj\Mytest\src\bb.py", line 6, in <module>
import aa
File "D:\pyproj\Mytest\src\aa.py", line 9, in <module>
bb.foo()
AttributeError: 'module' object has no attribute 'foo'
別のエピソード
問題を解決したいのですが、何か面白いものや有線のものに気づきました
テストを変更しました
aa.py
print('before import bb in aa.py')
import bb
print('after import bb in aa.py')
bb.foo()
print('end of all')
bb.py
def foo():
print('before import aa in bb.foo()')
import aa
print('after import aa in bb.foo()')
aa.pyから開始
before import bb in aa.py
after import bb in aa.py
before import aa in bb.foo()
before import bb in aa.py
after import bb in aa.py
before import aa in bb.foo()
after import aa in bb.foo()
end of all
after import aa in bb.foo()
end of all
誰かがこれを説明できますか?