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