用實(shí)例說(shuō)明python的*args和**kwargs用法
先來(lái)看一個(gè)例子:
>>> def foo(*args, **kwargs):
print 'args =', args
print 'kwargs = ', kwargs
print '-----------------------'
>>> if __name__ == '__main__':
foo(1, 2, 3, 4)
foo(a=1, b=2, c=3)
foo(1,2,3,4, a=1, b=2, c=3)
foo('a', 1, None, a=1, b='2', c=3)
其輸出結(jié)果如下:
args = (1, 2, 3, 4)
kwargs = {}
-----------------------
args = ()
kwargs = {'a': 1, 'c': 3, 'b': 2}
-----------------------
args = (1, 2, 3, 4)
kwargs = {'a': 1, 'c': 3, 'b': 2}
-----------------------
args = ('a', 1, None)
kwargs = {'a': 1, 'c': 3, 'b': '2'}
-----------------------
從以上例子可以看出,這兩個(gè)是python中的可變參數(shù)。*args表示任何多個(gè)無(wú)名參數(shù),它是一個(gè)tuple;**kwargs表示關(guān)鍵字參數(shù),它是一個(gè) dict。并且同時(shí)使用*args和**kwargs時(shí),*args參數(shù)列必須要在**kwargs前,像foo(a=1, b='2', c=3, a', 1, None, )這樣調(diào)用的話,會(huì)提示語(yǔ)法錯(cuò)誤“SyntaxError: non-keyword arg after keyword arg”。如同所示:
- python函數(shù)參數(shù)*args**kwargs用法實(shí)例
- Python中*args和**kwargs的區(qū)別詳解
- Python可變參數(shù)*args和**kwargs用法實(shí)例小結(jié)
- 關(guān)于Python中*args和**kwargs的深入理解
- Python可變參數(shù)*args和**kwargs
- Python中*args與**kwargs的高級(jí)應(yīng)用指南
- Python *args和**kwargs用法實(shí)例解析
- Python中的“_args”和“__kwargs”用法詳解
- Python中args和kwargs用法與區(qū)別舉例詳解
相關(guān)文章
在windows下使用python進(jìn)行串口通訊的方法
今天小編就為大家分享一篇在windows下使用python進(jìn)行串口通訊的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07python中urllib.request和requests的使用及區(qū)別詳解
這篇文章主要介紹了python中urllib.request和requests的使用及區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-05-05Python爬蟲(chóng)原理與基本請(qǐng)求庫(kù)urllib詳解
這篇文章主要介紹了Python爬蟲(chóng)原理與基本請(qǐng)求庫(kù)urllib詳解,爬蟲(chóng)就是通過(guò)模擬瀏覽器,按照一定的規(guī)則,自動(dòng)、大批量的獲取網(wǎng)絡(luò)資源,包括文本、圖片、鏈接、音頻、視頻等等,需要的朋友可以參考下2023-07-07Python基于React-Dropzone實(shí)現(xiàn)上傳組件的示例代碼
本文主要介紹了在React-Flask框架上開(kāi)發(fā)上傳組件的技巧。文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-08-08OpenCV學(xué)習(xí)之圖像形態(tài)學(xué)處理詳解
這篇文章主要為大家詳細(xì)介紹了OpenCV中圖像形態(tài)學(xué)處理的相關(guān)知識(shí),例如:腐蝕操作、膨脹操作、開(kāi)閉運(yùn)算、梯度運(yùn)算、Top Hat Black Hat運(yùn)算等操作,需要的可以參考一下2023-02-02Python中使用Queue和Condition進(jìn)行線程同步的方法
這篇文章主要介紹了Python中使用Queue模塊和Condition對(duì)象進(jìn)行線程同步的方法,配合threading模塊下的線程編程進(jìn)行操作的實(shí)例,需要的朋友可以參考下2016-01-01基于SQLAlchemy實(shí)現(xiàn)操作MySQL并執(zhí)行原生sql語(yǔ)句
這篇文章主要介紹了基于SQLAlchemy實(shí)現(xiàn)操作MySQL并執(zhí)行原生sql語(yǔ)句,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-06-06python基于mysql實(shí)現(xiàn)的簡(jiǎn)單隊(duì)列以及跨進(jìn)程鎖實(shí)例詳解
這篇文章主要介紹了python基于mysql實(shí)現(xiàn)的簡(jiǎn)單隊(duì)列以及跨進(jìn)程鎖,需要的朋友可以參考下2014-07-07jupyter notebook保存文件默認(rèn)路徑更改方法匯總(親測(cè)可以)
安裝Anaconda后,新建文件的默認(rèn)存儲(chǔ)路徑一般在C系統(tǒng)盤,那么路徑是什么呢?如何更改jupyter notebook保存文件默認(rèn)路徑呢?今天小編就這一問(wèn)題通過(guò)兩種方法給大家講解,需要的朋友跟隨小編一起看看吧2021-06-06