、私は簡単な例を持ってPythonのスコープの問題
first local_var: None second local_var: local
はしかし、私の実際の出力は次のようになります。
first local_var: Traceback (most recent call last): File "test.py", line 13, in func1() File "test.py", line 10, in func1 func("first") File "test.py", line 6, in func print "local_var:", local_var UnboundLocalError: local variable 'local_var' referenced before assignment
の私の理解Pythonのスコープ規則では、これが期待どおりに動作するはずです。私はこれが期待どおりに動作する他のコードを持っていますが、上記の簡単なケースでは動作しないコードフラグメントを減らすこともできません。だから私は困惑している。
ありがとうございます!これは、時には私が期待した動作をする理由を説明しています - 私は関数内でローカル変数を再割り当てしなかったとき(この場合はfunc())、すべてうまくいきました。あなたがそれを置くとき、それを割り当てることによって、「非常にローカルな」ものになりました。 –