python基礎--變數01
阿新 • • 發佈:2018-11-30
1.函式傳遞多餘的位置引數----*args 儲存為陣列格式
傳遞多餘的關鍵字引數------**kwargs 儲存為字典格式
def test(x,*args,**kwargs): ###### return res test(1,2,3,4,a=3,b=4)
2.全域性變數:在函式之前定義的變數(頂頭寫的),在所有函式中都可以呼叫
區域性變數:在函式內部定義的變數(有縮排),只能在本函式內部呼叫
3.在函式內部改全域性變數只需要在函式內部定義變數時加上修飾global,要寫在最前邊
name = "xiaohua" def change_name(): global name name = "xiaohei" print('change_name',name) change_name() print(name) change_name xiaohei xiaohei
如果函式的內容無global關鍵字,優先讀取區域性變數,能讀取全域性變數,無法對全域性變數重新賦值,但是對於可變型別,可以對內部進行操作
如果函式中有global關鍵字,變數本質上就是全域性的那個變數,可讀取可賦值
name = ["小紅","小黑"] def a(): name1= "小胖" print(name1) print(name) def b(): global name name.append("小黃") print(name) a() b()
4.當代碼開始執行時,遇到函式只編譯不執行
name = "剛娘" def weihou(): name = "陳卓" def weiweihou(): global name name = "冷靜" weiweihou() print(name) print(name) weihu()print(name) #剛娘 #陳卓 #冷靜 #函式執行順序: 1 12-1 剛娘 4 8 6-1 改為冷靜 7 9-4 陳卓 14-1 冷靜
5.nonlocal與global類似,不過它指的是上一級的變數