python的函數(shù)參數(shù)你了解嗎
前言
python參數(shù)類型和參數(shù)傳遞形式多樣,相對(duì)于其他語(yǔ)言python使用會(huì)更加靈活。它傳參形式一般分為兩種:位置傳參,關(guān)鍵字傳參。傳參形式是相對(duì)于實(shí)參而言,在函數(shù)調(diào)用時(shí)使用。參數(shù)類型一般也分為兩種:默認(rèn)參數(shù),不定長(zhǎng)參數(shù)。參數(shù)類型是相對(duì)形參而言,在函數(shù)創(chuàng)建時(shí)定義。
位置傳參
位置傳參,我們經(jīng)常使用的一種函數(shù)傳參形式,它根據(jù)實(shí)參的位置傳遞給對(duì)應(yīng)位置的形式參數(shù)。在與其他傳參形式混合使用時(shí),必須優(yōu)先輸入位置參數(shù)。
def func(a, b, c):
print(a, b, c)
# 位置參數(shù)
if __name__ == '__main__':
func(1, 6, 7) # 打印結(jié)果是1 6 7 位置一一對(duì)應(yīng)
func(6, 1, 7) # 打印結(jié)果是6 1 7
# func(6, 1) # 實(shí)參與形參數(shù)量必須一致
# func(6, 1, 7, 9) # 不能多也不能少關(guān)鍵字傳參
關(guān)鍵字傳參,根據(jù)形式參數(shù)的名字來(lái)進(jìn)行對(duì)應(yīng)的賦值。
def func(a, b, c):
print(a, b, c)
# 關(guān)鍵字參數(shù)
if __name__ == '__main__':
func(1, b=6, c=7) # 打印結(jié)果是1 6 7
func(c=3, b=1, a=7) # 打印結(jié)果是7 1 3
# func(c=2, b=3) # 不能少賦值
# func(c=2, b=3,a=6,c=5) # 不能多賦值
# func(c=2, b=3,a=5,qq=3) # 也不能無(wú)關(guān)賦值
# func(1, b=6, 7) # 與位置傳參混合使用時(shí),必須位置參數(shù)在前,而且不能交替使用 默認(rèn)參數(shù)
默認(rèn)參數(shù),就是形參會(huì)有個(gè)默認(rèn)值,如果有新值傳入就使用新值,否則使用默認(rèn)值。形參使用默認(rèn)參數(shù)時(shí)同樣需要注意位置,必須寫(xiě)在位置參數(shù)后面(其實(shí)不能叫位置參數(shù),但是為了理解就把沒(méi)有賦值的普通形參叫做位置參數(shù)),否則會(huì)報(bào)錯(cuò)。如下方ab必須寫(xiě)在c后面。

# 默認(rèn)參數(shù)必須要寫(xiě)在右側(cè)
def func(a, b=5, c=3):
print(a, b, c)
# 默認(rèn)參數(shù)
if __name__ == '__main__':
func(1) # 打印的結(jié)果是 1 5 3
func(1, 6) # 打印的結(jié)果是 1 6 3
func(1, 2, 7) # 打印結(jié)果是1 2 7
func(b=1, a=4) # 打印結(jié)果是4 1 3不定長(zhǎng)參數(shù)
不定長(zhǎng)參數(shù)有兩種表現(xiàn)形式。
- 在形參前面加個(gè)*(*args),表示不定長(zhǎng)元組形參,可以接收所有通過(guò)位置傳參進(jìn)來(lái)的實(shí)參,將其存入元組里面。
- 在形參前面加兩個(gè)*(**kwargs),表示不定長(zhǎng)字典形參,可以接收所有通過(guò)關(guān)鍵字傳參進(jìn)來(lái)的實(shí)參,將其存入字典里面。
# 不定長(zhǎng)參數(shù)
def func(*args, **kwargs):
print(args)
print(kwargs)
if __name__ == '__main__':
func(1, 4, 8, 7, a=5, h=6, l=15) # 注意實(shí)參形參順序要對(duì)應(yīng)結(jié)果
(1, 4, 8, 7) # 元組
{'a': 5, 'h': 6, 'l': 15} # 字典
混合使用問(wèn)題
創(chuàng)建時(shí)
def func1(a, b=5, *args, c=7, **kwargs):
print(a, b, args, c, kwargs)我們先給它們一個(gè)稱呼方便引用。就稱a為普通參數(shù),b為默認(rèn)參數(shù),*args為可變參數(shù)(因?yàn)樗芙邮斩鄠€(gè)實(shí)參),**kwargs為可變關(guān)鍵字參數(shù)(因?yàn)樗芙邮斩鄠€(gè)通過(guò)關(guān)鍵字傳參進(jìn)來(lái)的實(shí)參)。
- 普通參數(shù)必須寫(xiě)在最前面(寫(xiě)在其他類型參數(shù)前面)
- 可變關(guān)鍵字參數(shù)必須寫(xiě)在最后面(寫(xiě)在其他參數(shù)類型后面)
- 可變參數(shù)與可變關(guān)鍵字參數(shù)只能出現(xiàn)一次。
引用時(shí)
位置傳參必須寫(xiě)在關(guān)鍵字參數(shù)前面,他們倆不能交替使用。關(guān)鍵字傳參什么時(shí)候出現(xiàn)合適?出現(xiàn)在可變參數(shù)之后,相當(dāng)于終止條件。
def func1(a, b=5, *args, c=7, **kwargs):
print(a, b, args, c, kwargs, sep='\n')
if __name__ == '__main__':
func1(5, 6, 8, 7, 1, 5, 6, 8, c=4, r=2, s=3)結(jié)果為
5
6
(8, 7, 1, 5, 6, 8)
4
{'r': 2, 's': 3}
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
- Python函數(shù)基礎(chǔ)(定義函數(shù)、函數(shù)參數(shù)、匿名函數(shù))
- 總結(jié)Python函數(shù)參數(shù)的六種類型
- 深入了解python的函數(shù)參數(shù)
- Python全棧之文件函數(shù)和函數(shù)參數(shù)
- 關(guān)于Python函數(shù)參數(shù)的進(jìn)階用法
- Python中的函數(shù)參數(shù)(位置參數(shù)、默認(rèn)參數(shù)、可變參數(shù))
- Python函數(shù)參數(shù)和注解的使用
- Python函數(shù)參數(shù)基礎(chǔ)介紹及示例
相關(guān)文章
OpenCV實(shí)現(xiàn)常見(jiàn)的四種圖像幾何變換
這篇文章主要介紹了利用OpenCV實(shí)現(xiàn)的四種圖像幾何變換:縮放、翻轉(zhuǎn)、仿射變換及透視。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編學(xué)習(xí)一下2022-04-04
使用Python中的Argparse實(shí)現(xiàn)將列表作為命令行參數(shù)傳遞
Argparse?是一個(gè)?Python?庫(kù),用于以用戶友好的方式解析命令行參數(shù),本文我們將討論如何使用?Python?中的?Argparse?庫(kù)將列表作為命令行參數(shù)傳遞,感興趣的可以了解下2023-08-08
Python實(shí)現(xiàn)的遠(yuǎn)程文件自動(dòng)打包并下載功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的遠(yuǎn)程文件自動(dòng)打包并下載功能,結(jié)合實(shí)例形式分析了Python使用spawn()方法執(zhí)行ssh、scp 命令實(shí)現(xiàn)遠(yuǎn)程文件的相關(guān)操作技巧,需要的朋友可以參考下2019-07-07
使用jupyter Nodebook查看函數(shù)或方法的參數(shù)以及使用情況
這篇文章主要介紹了使用jupyter Nodebook查看函數(shù)或方法的參數(shù)以及使用情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-04-04
Tensorflow中TFRecord生成與讀取的實(shí)現(xiàn)
TFRecord格式的文件存儲(chǔ)形式會(huì)很合理的幫我們存儲(chǔ)數(shù)據(jù),本文主要介紹了Tensorflow中TFRecord生成與讀取的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
python中的隨機(jī)數(shù)種子seed()用法說(shuō)明
這篇文章主要介紹了python中的隨機(jī)數(shù)種子seed()用法說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
python實(shí)現(xiàn)Nao機(jī)器人的單目測(cè)距
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)Nao機(jī)器人的單目測(cè)距,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09

