欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

pytho傳參kwargs及用法詳解

 更新時間:2024年05月27日 15:08:38   作者:weixin_42924890  
這篇文章主要介紹了pytho傳參kwargs及用法,函數(shù)傳參的時候簡化傳參形式,無需指定參數(shù)名,本文結(jié)合實例代碼講解的非常詳細,需要的朋友參考下吧

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)文章

最新評論