Python中*args和**kwargs的區別

(注:本文部份內容摘自互聯網,因爲做者水平有限,不足之處,還望留言指正。)python

        中秋的夜,微涼,但卻始終看不見月亮。編程

       我想,它必定是害羞了,悄悄的躲到了烏雲的後面。函數

       嗯,就是這樣,我真是太TM機智了。Be right backspa

       正文:code

       注:《python核心編程第2版》的11.6可變長度的參數---章節中有詳細介紹。blog

1、*args的使用方法get

      *args 用來將參數打包成tuple給函數體調用it

      例子一:io

def function(*args):
    print(args, type(args))

function(1)

      輸出結果以元組的形式展現:function

                     image   

      例子二:

def function(x, y, *args):
    print(x, y, args)

function(1, 2, 3, 4, 5)

       輸出結果:

                     image

2、**kwargs的使用方法

      **kwargs 打包關鍵字參數成dict給函數體調用

      例子一:

def function(**kwargs):
    print( kwargs, type(kwargs))

function(a=2)

      輸出結果以列表形式展現:

                   image

     例子二:

def function(**kwargs):
    print(kwargs)

function(a=1, b=2, c=3)

    輸出結果:

                  image

 

    注意點:參數arg、*args、**kwargs三個參數的位置必須是必定的。必須是(arg,*args,**kwargs)這個順序,不然程序會報錯。

def function(arg,*args,**kwargs):
    print(arg,args,kwargs)

function(6,7,8,9,a=1, b=2, c=3)

    輸出結果:

                 image

    哎呀,寫完了。

    中秋節,多想,多想提一壺酒  約幾個老朋友  駕一葉小船兒,

    迷失在故鄉江南水鄉里。小舟蕩清波,過萬水千山。

相關文章
相關標籤/搜索