標籤:glob lob 需要 不用 war 函數傳回值 字典 global 變數
1 函數的定義和調用1.1 函數定義
1.2 函數的調用
2 函數參數
>>> def fun(a, b, *args, **kwargs):... """可變參數示範樣本"""... print "a =", a... print "b =", b... print "args =", args... print "kwargs: "... for key, value in kwargs.items():... print key, "=", value...>>> fun(1, 2, 3, 4, 5, m=6, n=7, p=8) # 注意傳遞的參數對應a = 1b = 2args = (3, 4, 5)kwargs: p = 8m = 6n = 7>>>>>>>>>>>> c = (3, 4, 5)>>> d = {"m":6, "n":7, "p":8}>>> fun(1, 2, *c, **d) # 注意元組與字典的傳參方式a = 1b = 2args = (3, 4, 5)kwargs: p = 8m = 6n = 7>>>>>>>>>>>> fun(1, 2, c, d) # 注意不加星號與上面的區別a = 1b = 2args = ((3, 4, 5), {‘p‘: 8, ‘m‘: 6, ‘n‘: 7})kwargs:>>>>>>
3 函數傳回值
4 局部變數和全域變數
局部變數
全域變數
總結:
- 在函數外邊定義的變數叫做
全域變數
- 全域變數能夠在所有的函數中進行訪問
- 如果在函數中修改全域變數,那麼就需要使用
global
進行聲明,否則出錯
- 如果全域變數的名字和局部變數的名字相同,那麼使用的是局部變數的,小技巧
強龍不壓地頭蛇
總結2:
- 在函數中不使用global聲明全域變數時不能修改全域變數的本質是不能修改全域變數的指向,即不能將全域變數指向新的資料。列表和字典的可以不用globa聲明的
- 對於不可變類型的全域變數來說,因其指向的資料不能修改,所以不使用global時無法修改全域變數。
- 對於可變類型的全域變數來說,因其指向的資料可以修改,所以不使用global時也可修改全域變數。
5 匿名函數
python-基礎-函數