Python關(guān)鍵字及可變參數(shù)*args,**kw原理解析
可變參數(shù)
顧名思義,函數(shù)的可變參數(shù)是傳入的參數(shù)可以變化的,1個(gè),2個(gè)到任意個(gè)。當(dāng)然可以將這些 參數(shù)封裝成一個(gè) list 或者 tuple 傳入,但不夠 pythonic。使用可變參數(shù)可以很好解決該問(wèn)題,注意可變參數(shù)在函數(shù)定義不能出現(xiàn)在特定參數(shù)和默認(rèn)參數(shù)前面,因?yàn)榭勺儏?shù)會(huì)吞噬掉這些參數(shù)。
def report(name, *grades):
total_grade = 0
for grade in grades:
total_grade += grade
print(name, 'total grade is ', total_grade)
定義了一個(gè)函數(shù),傳入一個(gè)參數(shù)為 name, 后面的參數(shù)*grades 使用了 * 修飾,表明該參數(shù)是一個(gè)可變參數(shù),這是一個(gè)可迭代的對(duì)象。該函數(shù)輸入姓名和各科的成績(jī),輸出姓名和總共成績(jī)。所以可以這樣調(diào)用函數(shù) report('Mike', 8, 9),輸出的結(jié)果為 Mike total grade is 17, 也可以這樣調(diào)用 report('Mike', 8, 9, 10),輸出的結(jié)果為 Mike total grade is 27
關(guān)鍵字參數(shù)
關(guān)鍵字參數(shù)可以傳入0個(gè)或者任意個(gè)含參數(shù)名的參數(shù),這些參數(shù)名在函數(shù)定義中并沒(méi)有出現(xiàn),這些參數(shù)在函數(shù)內(nèi)部自動(dòng)封裝成一個(gè)字典(dict).
def portrait(name, **kw):
print('name is', name)
for k,v in kw.items():
print(k, v)
定義了一個(gè)函數(shù),傳入一個(gè)參數(shù) name, 和關(guān)鍵字參數(shù) kw,使用了 ** 修飾。表明該參數(shù)是關(guān)鍵字參數(shù),通常來(lái)講關(guān)鍵字參數(shù)是放在函數(shù)參數(shù)列表的最后。如果調(diào)用參數(shù) portrait('Mike', age=24, country='China', education='bachelor') 輸出:
name is Mike
age 24
country China
education bachelor
通過(guò)可變參數(shù)和關(guān)鍵字參數(shù),任何函數(shù)都可以用 universal_func(*args, **kw) 表達(dá)。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Pytorch數(shù)據(jù)類型與轉(zhuǎn)換(torch.tensor,torch.FloatTensor)
這篇文章主要介紹了Pytorch數(shù)據(jù)類型轉(zhuǎn)換(torch.tensor,torch.FloatTensor),之前遇到轉(zhuǎn)為tensor轉(zhuǎn)化為浮點(diǎn)型的問(wèn)題,今天整理下,我只講幾個(gè)我常用的,對(duì)Pytorch數(shù)據(jù)類型轉(zhuǎn)換相關(guān)知識(shí)感興趣的朋友一起看看吧2023-02-02
Python 時(shí)間處理datetime實(shí)例
Python Cook書中有很多章節(jié)都是針對(duì)某個(gè)庫(kù)的使用進(jìn)行介紹或是通過(guò)組合多個(gè)函數(shù)實(shí)現(xiàn)一些復(fù)雜的功能。我這里直接跳過(guò)了上一章節(jié)中對(duì)于文件處理的一些章節(jié),直接進(jìn)入對(duì)時(shí)間操作的章節(jié)。2008-09-09
Django+uni-app實(shí)現(xiàn)數(shù)據(jù)通信中的請(qǐng)求跨域的示例代碼
這篇文章主要介紹了Django+uni-app實(shí)現(xiàn)數(shù)據(jù)通信中的請(qǐng)求跨域的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
分享5個(gè)短小精悍的Python趣味腳本,適合小白上手!
這篇文章主要給大家分享介紹了5個(gè)短小精悍的Python趣味腳本,非常適合小白上手,分別包含圖片尺寸縮小、pdf轉(zhuǎn)txt文檔、猜數(shù)字游戲、電池電量告警以及圖片添加水印等腳本,需要的朋友可以參考下2022-02-02
Python venv虛擬環(huán)境跨設(shè)備遷移的實(shí)現(xiàn)
本文主要介紹了Python venv虛擬環(huán)境跨設(shè)備遷移的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06
用Python中的字典來(lái)處理索引統(tǒng)計(jì)的方法
這篇文章主要介紹了用Python中的字典來(lái)處理索引統(tǒng)計(jì)的方法,字典的使用是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識(shí),本文則是相關(guān)的一個(gè)小實(shí)踐,需要的朋友可以參考下2015-05-05
Python?中的對(duì)象析構(gòu)函數(shù)__del__?詳情
這篇文章主要介紹了Python?中的對(duì)象析構(gòu)函數(shù)del詳情,Python?中的類的構(gòu)造函數(shù)???__init__???,?每當(dāng)實(shí)例產(chǎn)生就會(huì)調(diào)用這個(gè)構(gòu)造函下面更多相關(guān)內(nèi)容,需要的小伙伴可以參考一下2022-03-03
Python多項(xiàng)式回歸的實(shí)現(xiàn)方法
這篇文章主要介紹了Python多項(xiàng)式回歸的實(shí)現(xiàn)方法,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-03-03

