問題タブ [python-nonlocal]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2429 参照

python - 関数内の変数を別の関数から変更するPython 3

メインでtestadderが呼び出された後にテストに1を追加するように、testadderからメインのテスト変数にアクセスしたいと思います。

何らかの理由で、この方法でリストに 1 を追加できますが、変数には追加できません。関数がネストされていないため、非ローカル宣言は機能しません。

これを回避する方法はありますか?

0 投票する
1 に答える
1729 参照

python - for ループの外で変数を使用しようとすると SyntaxError: no binding for nonlocal 'max_' found が返されます

ループの外でmax_andを使用したいのですが、エラーが発生しますtemp_

0 投票する
3 に答える
3118 参照

python - 外部関数のネストされた関数変更変数が機能しない

の値を出力しますaaただし、ネストされた関数を次のように変更したい場合:

UnboundLocalError例外が発生します。

が非ローカル変数であることはわかっaていますが、宣言せずにアクセスできるのはなぜnonlocal aですか?

0 投票する
0 に答える
65 参照

function - 関数の下 (特定のクラスの下) で定義された変数を、同じクラスの下の他の関数に伝搬する

クラスがほとんどないコードがあります。の下SecondClassに という関数がありますplot_image。この関数の下には、 my_x、my_y、my_zという 3 つの変数が定義されています。同じクラスで呼び出される他の関数内でこれらの変数にアクセスできるようにしようとしています。以下は、疑似スニペットの形式の非動作例です。get_histogram

global関数の先頭にあるキーワードを試しましたplot_imageが、エラーメッセージが表示されてうまくいきません:

「NameError: 名前 'my_x' は定義されていません。」

解決策は何ですか?

0 投票する
2 に答える
781 参照

python - Python: 外部関数から戻った後に非ローカル変数を変更する

次の例を検討してください。

内部関数 と の両方がf1f2「クロージャー」内で変数 にアクセスしますin_g。しかし、帰国後、記憶のgどこに保管されているのでしょうか。in_g

gwhile の実行中in_gは、 への呼び出しに対応するスタック フレーム上の変数であると仮定しgます。したがって、変数 を使用するとgf1f2はすべて (スタック上の) 同じメモリ位置にアクセスしますin_g

しかし、例に見られるように、gリターンの後、 を参照するときに同じメモリ位置にアクセスしf1ます。ただし、返されたので、そのメモリの場所をスタックに置くことはできません。f2in_gg