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

Python グローバル キーワード

Python グローバル キーワード

この記事では、グローバル キーワード、グローバル変数、およびグローバル キーワードをいつ使用するかについて学習します。

この記事を読む前に、Python のグローバル変数、ローカル変数、および非ローカル変数の基本を理解しておいてください。


グローバル キーワードとは

Python では、global キーワードを使用すると、現在のスコープ外で変数を変更できます。グローバル変数を作成し、ローカル コンテキストで変数を変更するために使用されます。


グローバル キーワードのルール

global の基本ルール Python のキーワードは次のとおりです:


global キーワードの使用

例を見てみましょう。

例 1:関数内からグローバル変数にアクセスする

c = 1 # global variable

def add():
    print(c)

add()

上記のプログラムを実行すると、出力は次のようになります:

1

ただし、関数内からグローバル変数を変更する必要がある場合もあります。


例 2:関数内からグローバル変数を変更する

c = 1 # global variable
    
def add():
    c = c + 2 # increment c by 2
    print(c)

add()

上記のプログラムを実行すると、出力にエラーが表示されます:

UnboundLocalError: local variable 'c' referenced before assignment

これは、グローバル変数にしかアクセスできず、関数内から変更できないためです。

これに対する解決策は、global を使用することです キーワード。


例 3:global を使用して関数内からグローバル変数を変更する

c = 0 # global variable

def add():
    global c
    c = c + 2 # increment by 2
    print("Inside add():", c)

add()
print("In main:", c)

上記のプログラムを実行すると、出力は次のようになります:

Inside add(): 2
In main: 2

上記のプログラムでは、 c を定義しています add() 内のグローバル キーワードとして 関数。

次に、変数 c をインクリメントします 2までに 、つまり c = c + 2 .その後、add() を呼び出します。 関数。最後に、グローバル変数 c を出力します .

ご覧のとおり、関数外のグローバル変数 c = 2 でも変更が発生しました .


Python モジュール間のグローバル変数

Python では、単一のモジュール config.py を作成します。 グローバル変数を保持し、同じプログラム内の Python モジュール間で情報を共有します。

Python モジュール間でグローバル変数を共有する方法は次のとおりです。

例 4:Python モジュール間でグローバル変数を共有する

config.py を作成する ファイル、グローバル変数を保存する

a = 0
b = "empty"

update.py を作成します ファイル、グローバル変数を変更する

import config

config.a = 10
config.b = "alphabet"

main.py を作成する ファイル、値の変化をテストする

import config
import update

print(config.a)
print(config.b)

main.py を実行すると ファイル、出力は

10
alphabet

上記では、3 つのファイルを作成しました:config.pyupdate.py 、および main.py .

モジュール config.py a のグローバル変数を保存します と b . update.py で ファイル、config.py をインポートします モジュールを開き、a の値を変更します と b .同様に、 main.py で ファイル、両方の config.py をインポートします そして update.py モジュール。最後に、グローバル変数の値が変更されているかどうかを出力してテストします。


ネストされた関数のグローバル

ネストされた関数でグローバル変数を使用する方法は次のとおりです。

例 5:ネストされた関数でグローバル変数を使用する

def foo():
    x = 20

    def bar():
        global x
        x = 25
    
    print("Before calling bar: ", x)
    print("Calling bar now")
    bar()
    print("After calling bar: ", x)

foo()
print("x in main: ", x)

出力は次のとおりです:

Before calling bar: 20
Calling bar now
After calling bar: 20
x in main: 25

上記のプログラムでは、ネストされた関数 bar() 内でグローバル変数を宣言しました。 . foo() 内 関数、x global キーワードの効果はありません。

bar() を呼び出す前と呼び出した後 、変数 x ローカル変数の値、つまり x = 20 を取ります . foo() の外側 関数、変数 x bar() で定義された値を取ります 関数、つまり x = 25 .これは、global を使用したためです。 x のキーワード bar() 内にグローバル変数を作成する 関数 (ローカル スコープ)。

bar() 内に変更を加えた場合 関数、変更はローカルスコープの外に表示されます、つまり foo() .


Python

  1. Python データ型
  2. Python 演算子
  3. Python pass ステートメント
  4. Python 関数の引数
  5. Python グローバル変数、ローカル変数、および非ローカル変数
  6. Python 辞書
  7. Python イテレータ
  8. Python クロージャー
  9. Python 日時
  10. Python-概要
  11. Python-変数の型