すべてのロジックを無視すると思われるpythonパッケージで、奇妙な "unbound local"エラーが発生しました。私はそれを再現するためにMWEを得ることはできませんが、簡潔に説明しようとし、誰かが何が起こっているのかについて何らかの説明をしてくれることを願っています。インポートされたモジュールが有効範囲外になりました(バインドされていないローカルエラー)
module
は私が開発したパッケージであり、Model
はmodule
のクラスです。
import module
class Model:
def __init__(self):
print module
def run(self):
print module
、私はこのようなスクリプトでModel
をインスタンス化:
from model import Model
m = Model()
m.run()
module
成功し__init__
内のプリントが、私Model
クラス(model.py)の定義は次のようになりますrun
関数内のバインドされていないローカルエラーを取得します。
私は、私がrun()
機能でprint module
行の直前にPDBトレースを追加した場合、その後、私が正常に結合していないローカルエラーなしprint module
を実行することができますので、物事は本当に奇妙だところで、PDB、でこれを診断しようとしました私が次の行に進むと、エラーがスローされます。 module
はどのようにして__init__()
の範囲にあり、pdbの範囲にありますが、run()
の範囲にはありませんか?
MWEがないのでこれは理想的ではありませんが、完全なコードのコンテキスト外でこれを再現することはできません。誰かが何が起こっているのかを知り、さらにデバッグするための戦略を提案することを期待しています。
です。完全なスタックトレースを教えてもらえますか?それは、それがあなたが思っているところの、束縛されていない地方であることを確認するための診断に役立ちます。 – Delioth