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