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

Python グローバル変数、ローカル変数、および非ローカル変数

Python のグローバル変数、ローカル変数、非ローカル変数

このチュートリアルでは、Python グローバル変数、ローカル変数、非ローカル変数、およびそれらの使用場所について学習します。

ビデオ:Python のローカル変数とグローバル変数

グローバル変数

Python では、関数の外またはグローバル スコープで宣言された変数はグローバル変数と呼ばれます。これは、関数の内外でグローバル変数にアクセスできることを意味します。

Python でグローバル変数を作成する方法の例を見てみましょう。

例 1:グローバル変数を作成する

x = "global"

def foo():
    print("x inside:", x)


foo()
print("x outside:", x)

出力

x inside: global
x outside: global

上記のコードでは、 x を作成しました グローバル変数として foo() を定義 グローバル変数 x を出力します .最後に、foo() を呼び出します x の値を出力します .

x の値を変更したい場合 関数内?

x = "global"

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

foo()

出力

UnboundLocalError: local variable 'x' referenced before assignment

Python は x を扱うため、出力にエラーが表示されます ローカル変数と x として foo() 内でも定義されていません .

これを機能させるために、global を使用します。 キーワード。詳細については、Python グローバル キーワードにアクセスしてください。


ローカル変数

関数の本体内またはローカル スコープ内で宣言された変数は、ローカル変数と呼ばれます。

例 2:スコープ外のローカル変数にアクセスする

def foo():
    y = "local"


foo()
print(y)

出力

NameError: name 'y' is not defined

ローカル変数 y にアクセスしようとしているため、出力にエラーが表示されます グローバルスコープで、ローカル変数は foo() 内でのみ機能します またはローカル スコープ。


Python でローカル変数を作成する方法の例を見てみましょう。

例 3:ローカル変数を作成する

通常、関数内で変数を宣言してローカル変数を作成します。

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

foo()

出力

local

前の問題を見てみましょう x はグローバル変数で、x を変更したかった foo() 内 .


グローバル変数とローカル変数

ここでは、同じコードでグローバル変数とローカル変数を使用する方法を示します。

例 4:同じコードでグローバル変数とローカル変数を使用する

x = "global "

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

foo()

出力

global global 
local

上記のコードでは、 x を宣言しています グローバルおよび y として foo() のローカル変数として .次に、乗算演算子 * を使用します グローバル変数 x を変更するには 両方の x を出力します と y .

foo() を呼び出した後 、 x の値 global global になります x * 2 を使用したため global を 2 回印刷する .その後、ローカル変数 y の値を出力します すなわち local .


例 5:同じ名前のグローバル変数とローカル変数

x = 5

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


foo()
print("global x:", x)

出力

local x: 10
global x: 5

上記のコードでは、同じ名前 x を使用しました グローバル変数とローカル変数の両方。変数は両方のスコープ、つまり foo() 内のローカル スコープで宣言されているため、同じ変数を出力すると異なる結果が得られます。 foo() 外のグローバル スコープ .

foo() 内の変数を出力すると local x: 10 を出力します .これは、変数のローカル スコープと呼ばれます。

同様に、変数を foo() の外に出力すると、 、それは global x:5 を出力します .これは、変数のグローバル スコープと呼ばれます。


非ローカル変数

非ローカル変数は、ローカル スコープが定義されていないネストされた関数で使用されます。これは、変数がローカル スコープにもグローバル スコープにもないことを意味します。

非ローカル変数が Python でどのように使用されるかの例を見てみましょう。

nonlocal を使用します 非ローカル変数を作成するためのキーワード

例 6:非ローカル変数を作成する

def outer():
    x = "local"

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

    inner()
    print("outer:", x)


outer()

出力

inner: nonlocal
outer: nonlocal

上記のコードでは、ネストされた inner() があります。 関数。 nonlocal を使用します 非ローカル変数を作成するためのキーワード。 inner() 関数は別の関数 outer() のスコープで定義されています .

注意 :非ローカル変数の値を変更すると、変更はローカル変数に反映されます。


Python

  1. C の変数、定数、およびリテラル
  2. Python のキーワードと識別子
  3. Python ステートメント、インデント、およびコメント
  4. Python 変数、定数、およびリテラル
  5. Python の型変換と型キャスト
  6. Python の入力、出力、およびインポート
  7. Python グローバル キーワード
  8. Python の数値、型変換、および数学
  9. Python ディレクトリおよびファイル管理
  10. Python エラーと組み込み例外
  11. Python の type() と isinstance() と例