【学习笔记】18、函数的其他功能
函數的其他功能
一、調用函數時參數的順序
1、位置參數和關鍵字參數
注意,混合使用的時候,位置參數不能在關鍵字參數的后面,否則會報錯。
定義時,小括號中的參數,用來接收參數用的,稱之為“形參”;
調用時,小括號中的參數,用來傳遞給函數的,稱之為“實參”;
2、參數的默認值
調用函數時,默認參數的值如果沒有傳入,則被認為是默認值,否則會被覆蓋。
如果參數有默認值,只能放在沒有默認值參數的后面。
?
3、可變參數
當我們定義函數的時候還不知道具體需要傳入多少個參數,或者參數太長不方便寫,可變參數就是傳入的參數個數是可變的,可以是1個、2個到任意個,當然也可以是0個。
→ 可變長參數
在函數參數名前面加入一個星號“*”,會自動將你傳入進來的所有參數打包成一個元組。
?
→ 可變長關鍵字參數
在函數參數名前面加入兩個星號“**”,會自動將你傳入進來的所有參數打包成一個字典。
?
參數混合使用
注意:順序一定要正確。
?
二、局部變量和全局變量
局部變量:在函數內部定義的變量(變量的生效范圍在函數內部);
全局變量:在函數外部定義的變量(變量的生效范圍是全部地方);
不同的函數,可以定義相同名字的局部變量,但是各自不會影響。
局部變量的作用是為了臨時在函數中保存數據。
在函數內部是直接可以使用全局變量的,如果同名,優先使用局部變量(就近原則)。
?
修改全局變量
在函數內部可以使用全局變量,但是不能修改全局變量。
那么一定要修改怎么辦呢?——需要關鍵字global聲明。
?
可變的數據類型,不需要關鍵字global聲明,也會修改全局變量,比如列表list。
?
總結:
對于不可變類型的全局變量來說,因其指向的數據不能修改,所以不使用global無法修改;
對于可變類型的全局變量來說,因其指向的數據可以修改,所以不使用global也可以修改;
【練習題】
寫一個函數,檢查傳入的字典中的每一個value的長度,如果大于2,則保留兩個長度的內容,并將新內容返回給調用者。
因為字典也是可變數據類型,所以會改變全局遍歷的值,更好的方式是通過復制來處理。
?
總結
以上是生活随笔為你收集整理的【学习笔记】18、函数的其他功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【学习笔记】17、函数(Function
- 下一篇: 【学习笔记】19、模快(Module)