グローバル変数が作成されないPythonでグローバル変数を使用する方法

silencement
リリース: 2019-05-27 17:29:28
オリジナル
3341 人が閲覧しました

グローバル変数が作成されないPythonでグローバル変数を使用する方法

Python では、変数が参照される場合、ローカル スコープ (Local)、ネストされたスコープ (囲み関数ローカル)、およびグローバル スコープに基づいて変数の検索が行われます。ドメイン (Global)、組み込みスコープ (builtins モジュール) の順に出力されます。これがいわゆる LEGB ルールです。つまり、Python が変数を参照する順序は、現在のスコープのローカル変数 -> 外部スコープの変数 -> 現在のモジュールのグローバル変数 -> Python の組み込み変数です。

ただし、関数内の変数に値を割り当てる場合、最初に変数を見つけてからその変数に値を割り当てるという上記の LEGB ルールに従いません。 Python では、関数内の変数に値を代入する場合、次の規則があります。「関数内の変数名に値を代入する場合 (式内で参照するのではなく)、Python は常に変数名を作成または変更します。」その関数でグローバル変数として宣言されていない限り、ローカル スコープの「Python におけるグローバル グローバル変数と非ローカル ローカル変数」

グローバル キーワードは次のとおりです。関数または他のローカル スコープでグローバル変数を使用するために使用されます。

#

gcount = 0   #定义了一个全局变量,(可以省略global关键字)
 
def global_test():
    print (gcount)    #不修改,只是引用全局变量,不使用global关键字
    
def global_counter():
    global gcount    
    gcount +=1       #修改全局变量,需要使用global关键字
    return gcount
ログイン後にコピー
出力
1

2

3

非ローカル キーワードが使用で使用されています関数または他のスコープ内の外部 (非グローバル) 変数。

def make_counter(): 
    count = 0     #定义一个局部变量,该局部变量作用范围在make_counter()方法内
    def counter(): 
        nonlocal count   #在方法counter()中使用外层局部变量 count 
        count += 1 
        return count 
    return counter 
       
def make_counter_test(): 
  mc = make_counter() 
  print(mc())
  print(mc())
  print(mc())
 
make_counter_test()
ログイン後にコピー

出力

3

以上がグローバル変数が作成されないPythonでグローバル変数を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート