[解決済み] Pythonでグローバルスコープでなくアウタースコープにある変数を変更することは可能ですか?
2022-05-07 01:50:20
質問
次のようなコードがあります。
def A() :
b = 1
def B() :
# I can access 'b' from here.
print( b )
# But can i modify 'b' here? 'global' and assignment will not work.
B()
A()
のコードについては
B()
関数変数
b
は外部スコープにありますが、グローバルスコープにはありません。を変更することは可能でしょうか?
b
の中から
B()
関数を使うのですか?確かにここから読み取れますし
print()
しかし、どのようにそれを変更するのですか?
どのように解決するのですか?
について
Python 3
を使用します。
nonlocal
キーワード
:
は
nonlocal
ステートメントを使用すると、リストされた識別子は、グローバルを除く最も近いスコープで以前にバインドされた変数を参照するようになります。バインディングのデフォルトの動作は、まずローカルの名前空間を検索するため、これは重要なことです。このステートメントを使用すると、カプセル化されたコードで、グローバル(モジュール)スコープ以外のローカルスコープにある変数を再バインドすることができます。
def foo():
a = 1
def bar():
nonlocal a
a = 2
bar()
print(a) # Output: 2
について Python 2 を使用し、変数を再代入する代わりに値を変異させます。
def foo():
a = []
def bar():
a.append(1)
bar()
bar()
print a
foo()
出力します。
[1, 1]
関連
-
[解決済み】Django: ImproperlyConfigured: SECRET_KEY 設定は空であってはならない
-
[解決済み】 AttributeError("'str' object has no attribute 'read'")
-
[解決済み】外部スコープで定義された名前をシャドウイングする際の問題点とは?
-
[解決済み] 辞書を値で並べ替えるにはどうしたらいいですか?
-
[解決済み] PandasでDataFrameの行を反復処理する方法
-
[解決済み] Pythonでシングルトンを作成する
-
[解決済み] Pythonの@propertyデコレーターはどのように機能するのでしょうか?
-
[解決済み] Python RequestsでJSONデータをPOSTする方法とは?
-
[解決済み] エラーです。" 'dict' オブジェクトには 'iteritems' という属性がありません "
-
[解決済み】Pythonで値を代入せずに変数を宣言することだけが可能か?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
pythonを使ったオフィス自動化コード例
-
Python カメの描画コマンドとその例
-
PythonはWordの読み書きの変更操作を実装している
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】「RuntimeError: dictionary changed size during iteration」エラーを回避する方法とは?
-
[解決済み】Pythonスクリプトで「Expected 2D array, got 1D array instead: 」というエラーが発生?
-
[解決済み】"No JSON object could be decoded "よりも良いエラーメッセージを表示する。
-
[解決済み】ValueError: xとyは同じサイズでなければならない
-
[解決済み] Python非局所文