例: asginment ステートメントは、新しいローカル変数を宣言します。
foo = 'global'
def func1():
foo = 'func1'
def func2():
foo = 'local variable in func2'
グローバル宣言を使用すると、グローバルで foo が使用されます。
def func2():
global foo
foo = 'global changed in func2' #changed the foo value in global scope
func1スコープで変数fooを変更するにはどうすればよいですか?
助けてくれてありがとう。
編集:
Brandon Craig Rhodes さん、ありがとうございます。ようやく意味がわかりました。
ネストされたスコープが 3 つ以上ある場合は、変数をリストに格納できます。
foo = ['global', 'function1', 'function2']
def func1():
foo[1] = 'func1'
def func2():
foo[2] = 'func2'
foo[1] = 'func1 modified in func2'
実際にはグローバル変数を使用するだけです。
したがって、ネストされた2つの関数がある場合、使用できます
nonlocal foo
と
global foo
ネストされた関数が 3 つ以上あり
、各関数が他の関数スコープで変数を使用している場合
、グローバル リスト変数を宣言しないのはなぜですか?
ご協力ありがとうございました!!!