日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

理解 Python 中的 *args 和 **kwargs

發(fā)布時(shí)間:2025/3/20 python 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理解 Python 中的 *args 和 **kwargs 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Python是支持可變參數(shù)的,最簡單的方法莫過于使用默認(rèn)參數(shù),例如:

def test_defargs(one, two = 2):print 'Required argument: ', oneprint 'Optional argument: ', twotest_defargs(1) # result: # Required argument: 1 # Optional argument: 2test_defargs(1, 3) # result: # Required argument: 1 # Optional argument: 3

當(dāng)然,本文章的主題并不是講默認(rèn)參數(shù),而是另外一種達(dá)到可變參數(shù) (Variable Argument) 的方法:使用*args和**kwargs語法。其中,*args是可變的positional arguments列表,kwargs是可變的keyword arguments列表。并且,*args必須位于kwargs之前,因?yàn)閜ositional arguments必須位于keyword arguments之前。

首先介紹兩者的基本用法。

下面一個(gè)例子使用*args,同時(shí)包含一個(gè)必須的參數(shù):

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助, 群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' def test_args(first, *args):print 'Required argument: ', firstfor v in args:print 'Optional argument: ', vtest_args(1, 2, 3, 4) # result: # Required argument: 1 # Optional argument: 2 # Optional argument: 3 # Optional argument: 4

下面一個(gè)例子使用kwargs, 同時(shí)包含一個(gè)必須的參數(shù)和args列表:

''' 遇到問題沒人解答?小編創(chuàng)建了一個(gè)Python學(xué)習(xí)交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助, 群里還有不錯(cuò)的視頻學(xué)習(xí)教程和PDF電子書! ''' def test_kwargs(first, *args, **kwargs):print 'Required argument: ', firstfor v in args:print 'Optional argument (*args): ', vfor k, v in kwargs.items():print 'Optional argument %s (*kwargs): %s' % (k, v)test_kwargs(1, 2, 3, 4, k1=5, k2=6) # results: # Required argument: 1 # Optional argument (*args): 2 # Optional argument (*args): 3 # Optional argument (*args): 4 # Optional argument k2 (*kwargs): 6 # Optional argument k1 (*kwargs): 5

args和**kwargs語法不僅可以在函數(shù)定義中使用,同樣可以在函數(shù)調(diào)用的時(shí)候使用。不同的是,如果說在函數(shù)定義的位置使用args和**kwargs是一個(gè)將參數(shù)pack的過程,那么在函數(shù)調(diào)用的時(shí)候就是一個(gè)將參數(shù)unpack的過程了。下面使用一個(gè)例子來加深理解:

def test_args(first, second, third, fourth, fifth):print 'First argument: ', firstprint 'Second argument: ', secondprint 'Third argument: ', thirdprint 'Fourth argument: ', fourthprint 'Fifth argument: ', fifth# Use *args args = [1, 2, 3, 4, 5] test_args(*args) # results: # First argument: 1 # Second argument: 2 # Third argument: 3 # Fourth argument: 4 # Fifth argument: 5# Use **kwargs kwargs = {'first': 1,'second': 2,'third': 3,'fourth': 4,'fifth': 5 }test_args(**kwargs) # results: # First argument: 1 # Second argument: 2 # Third argument: 3 # Fourth argument: 4 # Fifth argument: 5

使用*args和**kwargs可以非常方便的定義函數(shù),同時(shí)可以加強(qiáng)擴(kuò)展性,以便日后的代碼維護(hù)。

總結(jié)

以上是生活随笔為你收集整理的理解 Python 中的 *args 和 **kwargs的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。