工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Python グローバル・ローカル・非ローカル変数を理解する

Python グローバル・ローカル・非ローカル変数を理解する

Pythonにおけるグローバル、ローカル、非ローカル変数の使い方をマスターし、それぞれをいつ適用すべきかを知って、クリーンで保守しやすいコードを書きます。

動画: Pythonローカルとグローバル変数

グローバル変数

Pythonでは、関数の外部、モジュールレベルで宣言された変数はグローバル変数です。モジュール内のどこからでも読み取れますが、関数内で変更するにはglobalキーワードで宣言する必要があります。

例: グローバル変数の作成と読み取り

x = "global"
def foo():
    print("x inside:", x)
foo()
print("x outside:", x)

出力

x inside: global
x outside: global

global宣言なしでxを再代入しようとするとUnboundLocalError:

x = "global"
def foo():
    x = x * 2
    print(x)
foo()

出力

UnboundLocalError: local variable 'x' referenced before assignment

関数内でグローバル変数を変更するにはglobalキーワードを使用:

x = "global"
def foo():
    global x
    x = x * 2
    print(x)
foo()

出力

globalglobal

ローカル変数

ローカル変数は関数本体内で定義され、その関数実行中のみ存在。関数外からアクセスできません。

例: スコープ外からローカル変数にアクセス

def foo():
    y = "local"
foo()
print(y)

出力

NameError: name 'y' is not defined

ローカル変数の正しい定義と使用:

def foo():
    y = "local"
    print(y)
foo()

出力

local

グローバルとローカル変数の併用

同じモジュールで両スコープを使うのは一般的。globalキーワードで変数がモジュールレベルのインスタンスを参照することを保証。

x = "global "
def foo():
    global x
    y = "local"
    x = x * 2
    print(x)
    print(y)
foo()

出力

global global
local

ローカル変数がグローバルと同名の場合、それらは独立:

x = 5
def foo():
    x = 10
    print("local x:", x)
foo()
print("global x:", x)

出力

local x: 10
global x: 5

非ローカル変数

ネスト関数は、nonlocalキーワードで外側(グローバルではない)スコープの変数にアクセス・変更できます。

def outer():
    x = "local"
    def inner():
        nonlocal x
        x = "nonlocal"
        print("inner:", x)
    inner()
    print("outer:", x)
outer()

出力

inner: nonlocal
outer: nonlocal

注意: 内側関数で非ローカル変数を更新すると、外側関数のスコープの変数が更新されます。

Python

  1. C言語変数・定数・リテラル完全ガイド
  2. Python キーワードと識別子: 予約語と命名規則をマスター
  3. Python 文・インデント・コメント: 明確なガイド
  4. Python 変数・定数・リテラル: 包括的ガイド
  5. Python 型変換とキャスト: 包括的ガイド
  6. Python I/Oとモジュールインポート完全マスター: 実践ガイド
  7. Python globalキーワード完全マスター: 使い方とタイミング
  8. Pythonにおける数値、型変換、数学のマスター
  9. Pythonディレクトリ・ファイル操作マスター:作成、移動、一覧、リネーム、削除
  10. Pythonエラーと組み込み例外をマスターする
  11. Python type()とisinstance()の理解:実例付き解説