Python中的“_args”和“__kwargs”用法詳解
*args 和 **kwargs
首先,要知道的是并不是必須寫成*args和**kwargs。 只有變量前?的*才是必須的。所以,你也可以寫成*var 和**vars。寫成*args 和**kwargs只是?個(gè)通俗的命名約定。
*args 和 **kwargs 主要?于函數(shù)定義。 你可以將不定數(shù)量的參數(shù)傳遞給?個(gè)函數(shù)。
這里的不定的意思是: 預(yù)先并不知道,函數(shù)使?者會(huì)傳遞多少個(gè)參數(shù),所以在這個(gè)場(chǎng)景下使用這兩個(gè)關(guān)鍵字。
*args 的用法
*args是用來(lái)發(fā)送?個(gè)非鍵值對(duì)的可變數(shù)量的參數(shù)列表給?個(gè)函數(shù)。
來(lái)看一個(gè)例子,可以幫助理解:
def test_var_args(f_arg, *argv): print("first normal arg:", f_arg) for arg in argv: print("another arg through *argv:", arg) >>> test_var_args('yasoob', 'python', 'eggs', 'test') first normal arg: yasoob another arg through *argv: python another arg through *argv: eggs another arg through *argv: test
**kwargs的用法
**kwargs 允許將不定長(zhǎng)度的鍵值對(duì),作為參數(shù)傳遞給?個(gè)函數(shù)。 如果你想要在?個(gè)函數(shù)里處理帶名字的參數(shù),應(yīng)該使用**kwargs。
def greet_me(**kwargs): for key, value in kwargs.items(): print("{0} == {1}".format(key, value)) >>> greet_me(name="yasoob") name == yasoob
使? *args 和 **kwargs 來(lái)調(diào)用函數(shù)
接下來(lái)學(xué)習(xí)一下怎樣使用*args 和**kwargs來(lái)調(diào)用?個(gè)參數(shù)為列表或者字典的函數(shù)。
現(xiàn)在有這樣?個(gè)函數(shù):
def test_args_kwargs(arg1, arg2, arg3): print("arg1:", arg1) print("arg2:", arg2) print("arg3:", arg3)
可以使用*args或**kwargs來(lái)給這個(gè)函數(shù)傳遞參數(shù)。 比如這樣使用*args:
>>> args = ("two", 3, 5) >>> test_args_kwargs(*args) arg1: two arg2: 3 arg3: 5
標(biāo)準(zhǔn)參數(shù)與*args、**kwargs在使用時(shí)的順序:
some_func(fargs, *args, **kwargs)
啥時(shí)候用
最常見的用例是在寫函數(shù)裝飾器的時(shí)候。
它也可以用來(lái)做猴子補(bǔ)丁。
到此這篇關(guān)于Python中的“_args”和“__kwargs”用法的文章就介紹到這了,更多相關(guān)Python args和kwargs用法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- python函數(shù)參數(shù)*args**kwargs用法實(shí)例
- 用實(shí)例說(shuō)明python的*args和**kwargs用法
- 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用法與區(qū)別舉例詳解
相關(guān)文章
使用PyTorch/TensorFlow搭建簡(jiǎn)單全連接神經(jīng)網(wǎng)絡(luò)
在本篇博客中,我們將介紹如何使用兩大深度學(xué)習(xí)框架——PyTorch 和 TensorFlow,構(gòu)建一個(gè)簡(jiǎn)單的全連接神經(jīng)網(wǎng)絡(luò),該網(wǎng)絡(luò)包含輸入層、一個(gè)隱藏層和輸出層,適合初學(xué)者理解神經(jīng)網(wǎng)絡(luò)的基本構(gòu)建模塊及訓(xùn)練流程,需要的朋友可以參考下2025-02-02Python實(shí)現(xiàn)的redis分布式鎖功能示例
這篇文章主要介紹了Python實(shí)現(xiàn)的redis分布式鎖功能,結(jié)合實(shí)例形式分析了Python操作redis分布式鎖與解鎖功能相關(guān)操作技巧,需要的朋友可以參考下2018-05-05Python Pandas實(shí)現(xiàn)數(shù)據(jù)分組求平均值并填充nan的示例
今天小編就為大家分享一篇Python Pandas實(shí)現(xiàn)數(shù)據(jù)分組求平均值并填充nan的示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07Django項(xiàng)目單字段區(qū)間查詢的實(shí)現(xiàn)
在Django項(xiàng)目中會(huì)碰到一些需求就是查詢某個(gè)表中的一些字段從某日到某日的數(shù)據(jù),你可以像在SQL中那樣使用SELECT語(yǔ)句來(lái)查找指定字段,本文就來(lái)介紹兩種方法,感興趣的可以了解一下2023-10-10tensorflow之自定義神經(jīng)網(wǎng)絡(luò)層實(shí)例
今天小編就為大家分享一篇tensorflow之自定義神經(jīng)網(wǎng)絡(luò)層實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02python之pexpect實(shí)現(xiàn)自動(dòng)交互的例子
今天小編就為大家分享一篇python之pexpect實(shí)現(xiàn)自動(dòng)交互的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07Python和Plotly實(shí)現(xiàn)3D圖形繪制
在當(dāng)今的數(shù)據(jù)分析和可視化領(lǐng)域,Python已經(jīng)成為一種不可或缺的工具,Plotly作為一種高級(jí)的繪圖庫(kù),特別擅長(zhǎng)于創(chuàng)建交互式和3D圖形,下面我們就來(lái)看看Python如何利用Plotly實(shí)現(xiàn)3D圖形繪制吧2024-11-11