日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

理解 Python 中的 *args 和 **kwargs

發布時間:2025/3/20 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 理解 Python 中的 *args 和 **kwargs 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python是支持可變參數的,最簡單的方法莫過于使用默認參數,例如:

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

當然,本文章的主題并不是講默認參數,而是另外一種達到可變參數 (Variable Argument) 的方法:使用*args和**kwargs語法。其中,*args是可變的positional arguments列表,kwargs是可變的keyword arguments列表。并且,*args必須位于kwargs之前,因為positional arguments必須位于keyword arguments之前。

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

下面一個例子使用*args,同時包含一個必須的參數:

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助, 群里還有不錯的視頻學習教程和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

下面一個例子使用kwargs, 同時包含一個必須的參數和args列表:

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:857662006 尋找有志同道合的小伙伴,互幫互助, 群里還有不錯的視頻學習教程和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語法不僅可以在函數定義中使用,同樣可以在函數調用的時候使用。不同的是,如果說在函數定義的位置使用args和**kwargs是一個將參數pack的過程,那么在函數調用的時候就是一個將參數unpack的過程了。下面使用一個例子來加深理解:

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可以非常方便的定義函數,同時可以加強擴展性,以便日后的代碼維護。

總結

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

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。