20201202-3 區域性變數與全域性變數作用域-1
阿新 • • 發佈:2020-12-02
1-1 def test4(name,age=9999,*args,**kwargs): print(name) print(age) print(args) print(kwargs) logger("TEST4") def logger(source): print("from %s" % source) test4('itachi',age=21,sex='m',hobby='sweet_rice_ball') ---> itachi 21 () {'sex': 'm', 'hobby': 'sweet_rice_ball'} fromView CodeTEST4 執行結果沒有問題
1-2 區域性變數 def change_name(name): print("before change",name) name = "Uchiha Itachi" print("after change",name) name = 'itachi' change_name(name) ---> before change itachi after change Uchiha Itachi # 區域性變數,只在函式裡生效;這個函式就是這個變數的作用域View Code
1-3 school = 'View Codezxcv edu' def change_name(name): school = 'Mage Linux' print('before change',name,school) name = 'Uchiha Itachi' age = 23 print('after change',name) print(school) name ='itachi' change_name(name) print(name) ---> zxcv edu before change itachi Mage Linux after change Uchiha Itachi itachi# 全域性變數,在函式中是改不了的,函式作用域只在小函式中生效 # 雖然叫同樣的名字,但是沒關係 # 函式中預設,區域性變數無法修改全域性變數
1-4 如果想在區域性變數中修改全域性變數,應該怎麼辦? 宣告 global school = 'zxcv edu' def change_name(name): global school # 在函式中修改全域性變數 school = 'Mage Linux' print('before change',name,school) name = 'Uchiha Itachi' age = 23 print('after change',name) name ='itachi' change_name(name) print(name) print('school:',school) ---> before change itachi Mage Linux after change Uchiha Itachi itachi school: Mage Linux # 這種情況是可以修改的View Code