如果我的文件 frame.py 和 bindings.py 都分別帶有類 Frame 和 Bindings,我將把 bindings.py 文件導入到 frame.py 中,from bindings import Bindings但我如何將 frame.py 文件導入到我的bindings.py 文件。如果我使用import frame或from frame import Frame我收到錯誤ImportError: cannot import name 'Bindings' from 'bindings'。有沒有什么辦法可以在不重構我的代碼的情況下解決這個問題?
2 回答

30秒到達戰場
TA貢獻1828條經驗 獲得超6個贊
這就是我們所說的循環導入。讓我們看一下這個例子。我們有兩個文件:
frame.py
from bindings import Bindings
class Frame:
pass
bindings.py
class Bindings:
pass
print("class Binding here")
from Frame import Frame
你應該知道的第一件事是,每當我們導入一個文件時,我們正在導入的文件中的代碼也會同時執行。所以在我的例子中,當你運行frame.py文件時,它首先執行bindings.py文件,它也會在那里找到它正在尋找的東西(即 class Bindings)。當bindings.py文件被執行時,該from Frame import Frame行將執行frame.py文件,得到它想要的東西(即 class Frame)。
添加回答
舉報
0/150
提交
取消