python中*args和**kargs得用法總結


前言:
一個很簡單的函數說起:
def Jiafa(x, y):
    z = x + y
    return z
print(Jiafa(1,2))
這個很簡單,一看就知道輸出等於3。

那下一個問題是,如果我要算不固定個數的數字相加,那怎么來計算呢?

額,是啊,好像90%的計算相加的數字都不是固定的呢.......

大家注意了,上面的x,y被稱為位置參數,是固定的,需要按位置順序傳參。我們現在的需求是參數個數不固定,那就整個不固定的方法!

 

可變位置參數:

python中規定參數前帶 * 的,稱為可變位置參數,只是我們通常稱這個可變位置參數為*args而已,叫其他的一樣一樣滴。

*args:是一個元組,傳入的參數會被放進元組里。

可變關鍵字參數:

同理,python中規定參數前 帶 ** 的,稱為可變關鍵字參數,通常用**kwargs表示。

**kwargs:是一個字典,傳入的參數以鍵值對的形式存放到字典里。

 

*args舉例:

先說args的作用,還是開篇的案例,我們要算不定長的加法,就可以用args來定義了,當然也可以叫x,y。

def Jiafa(*args):
    sum = 0
    for i in args:
        sum = sum + i
    print(sum)

Jiafa(1, 3, 5)
Jiafa(2, 4, 6, 8, )

輸出結果,9和20。這個案例很簡單,用*args定義就可以引入,相當於定義了不定長度的函數,然后在程序中就可以多次使用。

**kwargs舉例:
然后我們再來看看**kwargs:
def zidian(**kwargs):

    print(kwargs)

zidian(a=1,b=2,c =3)
zidian(a=1,b=2,c =3 ,d =4)

運行結果是:

{'a': 1, 'b': 2, 'c': 3}
{'a': 1, 'b': 2, 'c': 3, 'd': 4}

 大家清楚了嗎?清楚了的話,請動一動發財的小手給個贊咯!不清楚可以評論區聯系我聊一聊哦!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM