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