pytho傳參kwargs及用法詳解
pytho傳參kwargs
Python代碼中有很多類似的用法,第一次接觸的時候還是有很多疑惑的,為了方便記憶,因此梳理了一下。
# 使用模型進行推理 with torch.no_grad(): outputs = model(**encoded_texts)
對于一個dict類型的變量**encoded_texts
是取出value的值,而不考慮鍵。
def test_func(**kwargs): a = kwargs["a"] b = kwargs["b"] print(a) # [1, 2, 3] print(b) # hello test dct = {"a": [1, 2, 3], "b": "hello test"} test_func(**dct)
函數(shù)傳參的時候簡化傳參形式,無需指定參數(shù)名。
Python 函數(shù)的參數(shù)傳遞 *args和 **kwargs
知識點:
- 在函數(shù)調(diào)用時,*會以單個元素的形式解包一個元祖,使其成為獨立的參數(shù)。
- 在函數(shù)調(diào)用時,**會以鍵/值對的形式解包一個字典,使其成為獨立的關(guān)鍵字參數(shù)。
def f(a,*args): print(args) f(1,2,3,4) ?``` 輸出為:(2, 3, 4) ?```
雖然傳入1,2,3,4,但是解包為(1),(2,3,4),其中a是1,args是剩下的。
在python中,當*和**符號出現(xiàn)在函數(shù)定義的參數(shù)中時,表示任意數(shù)目參數(shù)。*arg表示任意多個無名參數(shù),類型為tuple;**kwargs表示關(guān)鍵字參數(shù),為dict,使用時需將arg放在*kwargs之前,否則會有“SyntaxError: non-keyword arg after keyword arg”的語法錯誤。
再看看**kwargs的參數(shù)傳遞的例子
def f(**kargs): print(kargs) f(a=1,b=2) # 實際傳入?yún)?shù)是兩個,但是給包裹在一起 ?```output: {'a': 1, 'b': 2} ?``` def person(name,age,**kw): print('name:',name,'age:',age,'other:',kw) # 傳入4個參數(shù),自動將后兩位 拼接到成字典 person('Adam', 45, gender='M', job='Engineer') ?```output name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'} ?```
再看看*args 和 **kwargs混合的例子
def h(a,*args,**kwargs): print(a,args,kwargs) h(1,2,3,x=4,y=5) # 丟進去不確定參數(shù)的包裹:1,2,3,x=4,y=5 # 解包:1 -a # 解包:(2,3) -*args # 解包:{'x': 4, 'y': 5} -**kwargs ?```output 1 (2, 3) {'x': 4, 'y': 5} ?```
到此這篇關(guān)于pytho傳參kwargs的文章就介紹到這了,更多相關(guān)pytho傳參kwargs內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python3.x編碼解碼unicode字符串的實現(xiàn)示例
ASCII文本編碼是一種Unicode,存儲為表示字符的字節(jié)值的一個序列,本文主要介紹了python3.x編碼解碼unicode字符串的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2024-01-01Python入門教程(二十九)Python的RegEx正則表達式
這篇文章主要介紹了Python入門教程(二十九)Python的RegEx,RegEx 或正則表達式是形成搜索模式的字符序列。RegEx 可用于檢查字符串是否包含指定的搜索模式,需要的朋友可以參考下2023-04-04使用Python opencv實現(xiàn)視頻與圖片的相互轉(zhuǎn)換
這篇文章主要介紹了使用Python opencv實現(xiàn)視頻與圖片的相互轉(zhuǎn)換,本文通過實例代碼給大家介紹的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07Python動態(tài)導入模塊:__import__、importlib、動態(tài)導入的使用場景實例分析
這篇文章主要介紹了Python動態(tài)導入模塊:__import__、importlib、動態(tài)導入的使用場景,結(jié)合實例形式分析了Python動態(tài)導入模塊__import__、importlib基本概念、原理及動態(tài)導入的具體應用操作技巧,需要的朋友可以參考下2020-03-03python打包生成的exe文件運行時提示缺少模塊的解決方法
今天小編就為大家分享一篇python打包生成的exe文件運行時提示缺少模塊的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-10-10python+selenium使用xpath定位的問題及解決
這篇文章主要介紹了python+selenium使用xpath定位的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-05-05python實現(xiàn)獲取當前設(shè)備的地點位置
這篇文章主要介紹了python實現(xiàn)獲取當前設(shè)備的地點位置,電腦如何獲取當前所處的地理位置?它不會像我們一樣對地理位置有感性的認知,它只認識數(shù)據(jù),簡言之,電腦可以通過獲取當前連接的公網(wǎng)IP,反推所處的位置環(huán)境,需要的朋友可以參考一下2022-03-03