ローカル変数とグローバル変数
1.グローバル変数:グローバルに有効な変数
name = 'lhf'#トップはインデントなしで書き込まれ、pyファイル全体で有効になります
def fox():
name = "sb"
print( "shuaige"、name)#この名前は、fox()関数内にあります。これは、ローカル変数
fox() #ここで出力される名前は、 "sb"
print( name) #ここで出力される名前はグローバル変数「lhf」
です。関数のグローバル変数を変更する場合は、次の方法を試すことができます
name = 'lhf'#上部のインデントなしはpy
def fox()全体で有効です:
グローバル名
name = "sb"
print( "shuaige"、name)#内部の名前はfox()関数内にありますローカル変数です
fox()#ここで出力される名前は「sb」です
print(name)#グローバル名はグローバル変数を変更するため、出力結果は「sb」です
Piggy Pageの補足:関数にグローバルがない、ローカル変数が最初に読み取られ、ない場合はグローバル変数が読み取られ、
グローバルがある場合はグローバル変数が変更される
name = "sb"
def a():
グローバル名#グローバル変数への
変更name = "2b"
print( "i fcuk"、name)
def b():
name = "haha"
print( "i want to fuck "、name)#グローバル変数は変更されていますが、関数bを呼び出すとき、独自のローカル変数を使用します
a()
b()
print(name)#この時点で、グローバル変数は変更され、 2b
!!!グローバル変数はすべて大文字で、ローカル変数はすべて小文字です!!!
練習:
def weihou(): name = "chenzhuo" def weiweihou():global name#グローバルをより深いレベルで追加し、内部変数の内部設定に影響を与えない name = "lengjing" weiweihou() print(name) print (name) weihou() print(name) #出力結果: gangniang chenzhuo lengjing
演習の拡大
def weihou(): name = "chenzhuo" def weiweihou():nonlocal name#!!!ここでの非ローカルとは、グローバル変数を変更せずに上位レベルの変数を変更することを指します name = "lengjing" weiweihou() print(name) print(name) weihou() print(name) #出力 結果:gangniang #lengjing #ガンニアン