python回顾(九)——函数高级,递归函数,匿名函数
函數(shù)默認(rèn)參數(shù)
默認(rèn)參數(shù)概念
默認(rèn)參數(shù)指函數(shù)/方法在定義時為形參賦值,對應(yīng)的形參稱為默認(rèn)參數(shù)
默認(rèn)參數(shù)是一個參數(shù)定義期的概念,與調(diào)用無關(guān)
?
?
默認(rèn)參數(shù)作用
如果參數(shù)定義默認(rèn)參數(shù),在調(diào)用函數(shù)/方法時,未對該參數(shù)進(jìn)行傳值,則使用默認(rèn)值作為該參數(shù)的值
?
?
默認(rèn)參數(shù)基本語法
定義格式:
def 函數(shù)名(形參1 = 值1,…):
函數(shù)體? ?
……
?
調(diào)用格式一(同普通參數(shù),無特殊):
函數(shù)名(實參) 使用實參作為形參的值,不使用默認(rèn)值
?
調(diào)用格式二:
函數(shù)名()使用默認(rèn)值作為形參的值
?
?
?
注意事項
1.默認(rèn)參數(shù)的定義必須在位置參數(shù)的右側(cè)
?
2.默認(rèn)參數(shù)在調(diào)用傳值時,按照位置參數(shù)進(jìn)行對待,從左至右依次賦值,不能跳過左側(cè)的某個參數(shù)直接為后面的參數(shù)賦值
?
?
?
關(guān)鍵字參數(shù)
關(guān)鍵字參數(shù)概念
函數(shù)/方法在調(diào)用時為指定名稱的形參進(jìn)行賦值,對應(yīng)實參稱關(guān)鍵字參數(shù)
關(guān)鍵字參數(shù)是一個參數(shù)調(diào)用期的概念,與定義無關(guān)
?
?
關(guān)鍵字參數(shù)作用
按名稱確認(rèn)實參為指定的形參賦值
?
?
關(guān)鍵字參數(shù)基本語法
定義格式(同普通參數(shù)定義,無特殊):
def 函數(shù)名(形參 ,…):
函數(shù)體 ??
???? ……
?
調(diào)用格式:
函數(shù)名( 形參名 = 實參)
?
?
注意事項
1.關(guān)鍵字參數(shù)必須出現(xiàn)在位置參數(shù)的后面
?
?
2.不允許使用關(guān)鍵字參數(shù)對同一個形參進(jìn)行多次賦值
?
?
3.關(guān)鍵字參數(shù)既可以為位置參數(shù)賦值,也可以為默認(rèn)參數(shù)賦值。通常使用關(guān)鍵字參數(shù)解決默認(rèn)參數(shù)選擇性賦值問題
?
?
?
?
可變參數(shù)
可變參數(shù)概念
函數(shù)/方法在定義時,定義一個特殊的形參,用于接收調(diào)用時傳入的任意數(shù)量的實參,對應(yīng)的形參稱為可變參數(shù)
可變參數(shù)是一個參數(shù)定義期與調(diào)用期都有效的概念
?
?
可變參數(shù)作用
簡化函數(shù)定義過程,定義可以接收無數(shù)個實參的形參
形參接受到的數(shù)據(jù),無論數(shù)量多少,包裝成一個元組對象
?
?
可變參數(shù)基本語法
定義格式:
def 函數(shù)名(*args?,…):
函數(shù)體? ?
……
調(diào)用格式(同普通參數(shù),無特殊):
函數(shù)名( 實參1,…… )
?
?
?
注意事項
1.可變參數(shù)在一個函數(shù)/方法定義中只能出現(xiàn)一個
?
?
2.可變參數(shù)只能出現(xiàn)在位置參數(shù)的后面,位置參數(shù)在左側(cè),可變參數(shù)在右側(cè)
?
?
3.關(guān)鍵字參數(shù)只能出現(xiàn)在位置參數(shù)的后面,賦值時必須使用關(guān)鍵字參數(shù)傳值,否則值會被可變參數(shù)接收
?
?
4.定義函數(shù)的參數(shù)時,先定義位置參數(shù),再定義可變參數(shù),最后定義默認(rèn)參數(shù)
?
?
?
?
字典參數(shù)
字典參數(shù)概念
函數(shù)/方法在定義時,定義一個特殊的形參,用于接收未定義直接使用的關(guān)鍵字參數(shù),對應(yīng)的形參稱為字典參數(shù)
?
?
字典參數(shù)作用
簡化函數(shù)定義過程,接收未定義直接使用的關(guān)鍵字參數(shù)
在多層級調(diào)用間進(jìn)行關(guān)鍵字參數(shù)的逐級傳遞
未定義的關(guān)鍵字參數(shù),無論數(shù)量多少,接收后包裝成一個字典對象
?
?
字典參數(shù)基本語法
定義格式:
def 函數(shù)名(**kwargs?,…):
函數(shù)體 ??
???? ……
?
調(diào)用格式:
函數(shù)名( 未定義的變量名1 =?實參1,未定義的變量名2 =?實參2,…… )
?
?
?
注意事項
1.字典參數(shù)在一個函數(shù)/方法定義中只能出現(xiàn)一個
?
?
2.定義函數(shù)的參數(shù)時,先定義位置參數(shù),再定義可變參數(shù),然后定義默認(rèn)參數(shù),最后定義字典參數(shù)
?
?
?
其他
所有的容器都支持解包操作,格式:*容器變量名
?
?
?
遞歸函數(shù)
遞歸函數(shù)概念
函數(shù)/方法在執(zhí)行過程中出現(xiàn)了對自身函數(shù)/方法的調(diào)用,稱該過程為遞歸調(diào)用,稱這樣的函數(shù)為遞歸函數(shù)。
?
?
遞歸函數(shù)基本語法
同普通函數(shù)
?
?
遞歸函數(shù)定義要求
1.函數(shù)體中具有對自身函數(shù)的調(diào)用
2.函數(shù)體中具有明確的函數(shù)執(zhí)行結(jié)束判定條件
?
?
遞歸函數(shù)調(diào)用要求
Python語言中函數(shù)調(diào)用最大層級為1000層,超過該層級,程序?qū)箦e(不同語言設(shè)置不同)
?
?
?
匿名函數(shù)
匿名函數(shù)概念
匿名函數(shù)即沒有名稱的函數(shù),在python語言中,匿名函數(shù)是使用lambda關(guān)鍵字定義的一個特殊表達(dá)式,也稱為lambda表達(dá)式
?
?
匿名函數(shù)基本語法
格式一:
定義: 函數(shù)名?=?lambda 形參 :?返回值
調(diào)用: 結(jié)果 = 函數(shù)名(實參)
?
?
格式二:
定義并調(diào)用: 結(jié)果 = (lambda 形參 : 返回值)(實參)
?
?
?
匿名函數(shù)特殊語法
無參格式: 結(jié)果 = (lambda?:返回值)()
?
?
多返回值格式: 無,可使用數(shù)據(jù)存儲模型返回多個數(shù)據(jù)
?
無返回值格式: 無,必須有具體值或結(jié)果為None
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
轉(zhuǎn)載于:https://www.cnblogs.com/sickle/p/10116272.html
總結(jié)
以上是生活随笔為你收集整理的python回顾(九)——函数高级,递归函数,匿名函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 关于haproxy的重定向
- 下一篇: websocket python爬虫_p