Python入門11-内部関数とnonlocalキーワード
1069 ワード
内部関数はその名の通り関数内部に関数を定義するので,外部関数という名詞もある.内部関数は、外部関数の可変タイプ変数を直接変更し、使用することができます.可変型変数(数値、文字列、メタグループなど)は直接使用できますが、変更するにはキーワードnonlocalキーワード宣言を使用する必要があります.
1、内部関数の権限問題
(1)内部関数は外部関数の変数にアクセスできる.
(2)外部関数の可変型変数を変更することができる.
(3)内部関数では、グローバル変数を変更するにはglobalキーワード宣言が必要である.外部関数の可変型変数を変更するにはnonlocalキーワード宣言を追加する必要があります.
2、nonlocalキーワード
このキーワードの役割は,内部関数に外部関数の可変型の変数を宣言し,内部関数でその変数を修正できるようにすることであり,上記の例では明確に説明できる.
また、ここでは2つの関数について説明します.
locals():辞書、現在の関数のローカル変数を表示します.
globals():辞書、システムの内容を含むグローバル変数を表示します.
1、内部関数の権限問題
(1)内部関数は外部関数の変数にアクセスできる.
(2)外部関数の可変型変数を変更することができる.
(3)内部関数では、グローバル変数を変更するにはglobalキーワード宣言が必要である.外部関数の可変型変数を変更するにはnonlocalキーワード宣言を追加する必要があります.
num01 = 1
def fun01():
num02 = 2
s = 'apple'
lst = {1, 2, 3}
def fun02():
nonlocal num02
global num01
num01 += 1 #
s = 'melon' # s fun02()
num02 += 3 #
lst.add(4) #
print(s) # s = 'melon'
print(num01) # num01 = 2
print(num02) # num02 = 5
print(lst) # lst = {1,2,3,4}
print(s) # :s = 'apple'
fun02()
2、nonlocalキーワード
このキーワードの役割は,内部関数に外部関数の可変型の変数を宣言し,内部関数でその変数を修正できるようにすることであり,上記の例では明確に説明できる.
また、ここでは2つの関数について説明します.
locals():辞書、現在の関数のローカル変数を表示します.
globals():辞書、システムの内容を含むグローバル変数を表示します.