私は3つのファイルを持っています:
testimports モジュール:
#import moduleTwo
import moduleOne
hiString = "Hi!"
moduleOne.sayHi()
モジュールワン:
import moduleTwo
class sayHi():
moduleTwo.printHi()
モジュール 2:
import testimports
def printHi():
print(testimports.hiString)
を実行するtestimports
と、次のようになります。
Traceback (most recent call last):
File "..file path snipped../testimports/src/testimports.py", line 2, in <module>
import moduleOne
File "..file path snipped../testimports/src/moduleOne.py", line 1, in <module>
import moduleTwo
File "..file path snipped../testimports/src/moduleTwo.py", line 1, in <module>
import testimports
File "..file path snipped../testimports/src/testimports.py", line 6, in <module>
moduleOne.sayHi()
AttributeError: 'module' object has no attribute 'sayHi'
import moduleTwo
ただし、 の行のコメントを外すtestimports
と、プログラムは動作を停止する前にこの時点に到達します。
Traceback (most recent call last):
File "..file path snipped../testimports/src/testimports.py", line 1, in <module>
import moduleTwo
File "..file path snipped../testimports/src/moduleTwo.py", line 1, in <module>
import testimports
File "..file path snipped../testimports/src/testimports.py", line 2, in <module>
import moduleOne
File "..file path snipped../testimports/src/moduleOne.py", line 3, in <module>
class sayHi():
File "..file path snipped../testimports/src/moduleOne.py", line 4, in sayHi
moduleTwo.printHi()
AttributeError: 'module' object has no attribute 'printHi'
この循環依存の問題を解決するにはどうすればよいですか?