変数スコープ:
一般に、関数の外で定義された変数はグローバル変数となり、関数の内部で定義された変数はローカル変数と呼ばれます。
グローバル変数はすべてのスコープで読み取り可能ですが、ローカル変数はこの関数でのみ読み取ることができます。
関数が変数を読み取るときは、まず関数自体のローカル変数を読み取り、次にグローバル変数の読み取り
グローバル変数
読み取り、すべて読み取り可能
割り当て、グローバル
辞書、リスト可能変更する必要があります
グローバル変数はすべて大文字です
例
name = 'Tim' #全局变量 def f1(): age = 18 #局部变量 print(age,name) def f2(): age=19 #局部变量 print(age,name) f1() f2() >>> 18 Tim 19 Tim
グローバル変数は関数内で定義することもできます:
name = 'Tim' #全局变量 def f1(): age = 18 #局部变量 global name #定义全局变量 name = 'Eric' print(age,name) f1() print(name)
グローバル変数はデフォルトで読み取り可能で、必要に応じて変更できます グローバル変数の値は、関数内で global を使用して定義する必要があります
特殊: リスト、ディクショナリは変更できますが、再割り当てはできません。が必須である場合、グローバル変数は関数内で global を使用して定義する必要があります
NAME = ['Tim','mike'] #全局变量 NAME1 = ['Eric','Jeson'] #全局变量 NAME3 = ['Tom','jane'] #全局变量 def f1(): NAME.append('Eric') #列表的append方法可改变外部全局变量的值 print('函数内NAME: %s'%NAME) NAME1 = '123' #重新赋值不可改变外部全局变量的值 print('函数内NAME1: %s'%NAME1) global NAME3 #如果需要重新给列表赋值,需要使用global定义全局变量 NAME3 = '123' print('函数内NAME3: %s'%NAME3) f1() print('函数外NAME: %s'%NAME) print('函数外NAME1: %s'%NAME1) print('函数外NAME3: %s'%NAME3) >>> 函数内NAME: ['Tim', 'mike', 'Eric'] 函数内NAME1: 123 函数内NAME3: 123 函数外NAME: ['Tim', 'mike', 'Eric'] 函数外NAME1: ['Eric', 'Jeson'] 函数外NAME3: 123
以上がPython変数のスコープの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。