我在python包中看到一個奇怪的「未綁定本地」錯誤,似乎違反所有邏輯。我不能讓MWE重現它,但會試圖簡潔地解釋,並希望有人能夠提供一些解釋。導入的模塊超出範圍(未綁定的本地錯誤)
爲了這個例子module
是我開發的包,Model
是module
中的一個類。在Model
類(model.py)的定義是這樣的:
import module
class Model:
def __init__(self):
print module
def run(self):
print module
現在,當我在這樣的腳本實例化一個Model
:在__init__
內
from model import Model
m = Model()
m.run()
module
成功打印,但我在run
函數中獲得未綁定的本地錯誤。
我試圖用PDB,這就是事情變得很奇怪診斷這一點,因爲如果我添加一個PDB跟蹤前夕在run()
功能print module
線,那麼我可以成功運行print module
沒有綁定本地錯誤,但如果我走到下一行,則會拋出錯誤。 module
如何在__init__()
的範圍內,並在pdb的範圍內,但不在run()
的範圍內?
我知道這是不理想的,因爲沒有MWE,但我似乎無法在完整代碼的上下文之外重現此內容。我希望有人能夠了解可能發生的事情並提出一些進一步調試的策略。
你能給我們完整的堆棧跟蹤嗎?這將有助於診斷,以確保它是一個你認爲它是未綁定的本地。 – Delioth