前言:
一個很簡單的函數說起:
def Jiafa(x, y): z = x + y return z print(Jiafa(1,2))
那下一個問題是,如果我要算不固定個數的數字相加,那怎么來計算呢?
額,是啊,好像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}
大家清楚了嗎?清楚了的話,請動一動發財的小手給個贊咯!不清楚可以評論區聯系我聊一聊哦!