問題タブ [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.
python - 関数内の変数を別の関数から変更するPython 3
メインでtestadderが呼び出された後にテストに1を追加するように、testadderからメインのテスト変数にアクセスしたいと思います。
何らかの理由で、この方法でリストに 1 を追加できますが、変数には追加できません。関数がネストされていないため、非ローカル宣言は機能しません。
これを回避する方法はありますか?
python - for ループの外で変数を使用しようとすると SyntaxError: no binding for nonlocal 'max_' found が返されます
ループの外でmax_
andを使用したいのですが、エラーが発生しますtemp_
python - 外部関数のネストされた関数変更変数が機能しない
の値を出力しますa
。a
ただし、ネストされた関数を次のように変更したい場合:
UnboundLocalError
例外が発生します。
が非ローカル変数であることはわかっa
ていますが、宣言せずにアクセスできるのはなぜnonlocal a
ですか?
function - 関数の下 (特定のクラスの下) で定義された変数を、同じクラスの下の他の関数に伝搬する
クラスがほとんどないコードがあります。の下SecondClass
に という関数がありますplot_image
。この関数の下には、 my_x、my_y、my_zという 3 つの変数が定義されています。同じクラスで呼び出される他の関数内でこれらの変数にアクセスできるようにしようとしています。以下は、疑似スニペットの形式の非動作例です。get_histogram
global
関数の先頭にあるキーワードを試しましたplot_image
が、エラーメッセージが表示されてうまくいきません:
「NameError: 名前 'my_x' は定義されていません。」
解決策は何ですか?
python - Python: 外部関数から戻った後に非ローカル変数を変更する
次の例を検討してください。
内部関数 と の両方がf1
、f2
「クロージャー」内で変数 にアクセスしますin_g
。しかし、帰国後、記憶のg
どこに保管されているのでしょうか。in_g
g
while の実行中in_g
は、 への呼び出しに対応するスタック フレーム上の変数であると仮定しg
ます。したがって、変数 を使用するとg
、f1
とf2
はすべて (スタック上の) 同じメモリ位置にアクセスしますin_g
。
しかし、例に見られるように、g
リターンの後、 を参照するときに同じメモリ位置にアクセスしf1
ます。ただし、返されたので、そのメモリの場所をスタックに置くことはできません。f2
in_g
g