У меня есть три файла:
модуль testimports:
#import moduleTwo
import moduleOne
hiString = "Hi!"
moduleOne.sayHi()
moduleOne:
import moduleTwo
class sayHi():
moduleTwo.printHi()
moduleTwo:
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'
Как мне решить проблему циклической зависимости?