可変スコープ:
一般に、関数本体の外部で定義された変数はグローバル変数になり、関数の内部で定義された変数はローカル変数と呼ばれます。
グローバル変数のすべてのスコープは読み取り可能であり、ローカル変数はこの関数でのみ読み取ることができます
関数が変数を読み取るとき、最初に関数自体のローカル変数を読み取り、次にグローバル変数を読み取ります。
グローバル変数
読む、すべて読む
割り当て、グローバル
辞書、リストは変更できます
グローバル変数はすべて大文字です
例えば
name ='Tim' #グローバル変数
def f1():
age =18 #ローカル変数
print(age,name)
def f2():
age=19 #ローカル変数
f1()f2()18 Tim
19 Tim
関数内でグローバル変数を定義することもできます。
name ='Tim' #グローバル変数
def f1():
age =18 #ローカル変数
global name #グローバル変数を定義する
name ='Eric'print(age,name)f1()print(name)
グローバル変数はデフォルトで読み取り可能です。グローバル変数の値を変更する必要がある場合は、関数内でグローバル定義を使用する必要があります
特別:リスト、辞書は変更できますが、再割り当てすることはできません。再割り当てが必要な場合は、グローバルを使用して関数内のグローバル変数を定義する必要があります。
NAME =['Tim','mike'] #グローバル変数
NAME1 =['Eric','Jeson'] #グローバル変数
NAME3 =['Tom','jane'] #グローバル変数
def f1():
NAME.append('Eric') #リストのappendメソッドは、外部グローバル変数の値を変更できます
print('関数名:%s'%NAME)
NAME1 ='123' #再割り当てでは、外部グローバル変数の値を変更できません
print('関数NAME1: %s'%NAME1)
global NAME3 #リストを再割り当てする必要がある場合は、グローバルを使用してグローバル変数を定義する必要があります
NAME3 ='123'print('関数NAME3: %s'%NAME3)f1()print('外部関数名: %s'%NAME)print('外部関数名1: %s'%NAME1)print('外部関数名3: %s'%NAME3)
関数内のNAME:['Tim'、 'mike'、 'Eric']
関数内のNAME1:123
関数内のNAME3:123
関数外の名前:['Tim'、 'mike'、 'Eric']
関数外のNAME1:['Eric'、 'Jeson']
関数外のNAME3:123
これまでのところ、python変数のスコープに関するこの記事はここで紹介されています。python変数のスコープの詳細については、ZaLou.Cnを検索してください。
Recommended Posts