python中的 和 ,能夠讓函數支持任意數量的參數,它們在函數定義和調用中,有著不同的目的 一. 打包參數 的作用:在函數定義中,收集所有的位置參數到一個新的元組,並將這個元組賦值給變數args 的作用:在函數定義中,收集關鍵字參數傳遞給一個字典,並將這個字典賦值給變數kwargs PS:遇到問題 ...
python中的*和**,能夠讓函數支持任意數量的參數,它們在函數定義和調用中,有著不同的目的
一. 打包參數
*的作用:在函數定義中,收集所有的位置參數到一個新的元組,並將這個元組賦值給變數args
>>> def f(*args):
print(args)
>>> f()
()
>>> f(1)
(1,)
>>> f(1, 2, 3, 4)
(1, 2, 3, 4)
>>>
** 的作用:在函數定義中,收集關鍵字參數傳遞給一個字典,並將這個字典賦值給變數kwargs
>>> def f(**kwargs):
print(kwargs)
>>> f()
{}
>>> f(a=1, b=2)
{'a': 1, 'b': 2}
PS:遇到問題沒人解答?需要Python學習資料?可以加點擊下方鏈接自行獲取
note.youdao.com/noteshare?id=2dce86d0c2588ae7c0a88bee34324d76
二. 解包參數
的作用:在函數調用中,能夠將元組或者列表解包成不同的參數
>>> def func(a, b, c, d):
print(a, b, c, d)
>>> args = (1, 2, 3, 4)
>>> func(*args)
1 2 3 4
>>> args = [1, 2, 3, 4]
>>> func(*args)
1 2 3 4
的作用:在函數調用中,會以鍵/值的形式解包一個字典,使其成為獨立的關鍵字參數
>>> def func(a, b, c, d):
print(a, b, c, d)
>>> kwargs = {"a": 1, "b": 2, "c": 3, "d": 4}
>>> func(**kwargs)
1 2 3 4
舉個慄子:
# 參數解包:將整個list當做參數傳給函數
list = [1, 2, 4]
def add_fn(a, b, c):
return a + b + c
sum = add_fn(*list)
print("參數解包:", sum)
運行結果:
參數解包: 7