python向函數傳遞參數 python函數中傳遞的參數如果是列表,字典



文章插圖
python向函數傳遞參數 python函數中傳遞的參數如果是列表,字典

文章插圖
參數定義(形參):
1. 位置參數
def foo(a, b,):
2. 可變長位置參數
def foo(a, b, *args):
3. 命名關鍵字參數
def foo(a, b, *, c):def foo(a, b, *args, c): (如果已經有*args, 可以不用*分隔, c也已經是”命名關鍵字參數”了)
使用*號分隔, 后面的形參名c表示: 之后的實參傳遞進來的時候, 必須要使用”c”這個關鍵字傳參
如: foo(1, 2, *[3, 4, 5], c=6) >> 可正常調用
foo(1, 2, *[3, 4, 5], b=6) >> 報錯
用途: 不明(感覺沒啥用啊)
4. 默認/非默認參數
def foo(a, b, *args, c=618, d):def foo(a, b=618, *args, c, d):
位置: 必須要放在”非默認的位置參數”后 (notice: ‘默認參數b’ 可以放在 “非默認的命名關鍵詞參數c和d” 前 )
5. 可變長關鍵字參數
def foo(a, b, *args, c, d, **kwargs):
其實**kwargs參數也算是一種”命名關鍵字參數” (它也是必須要以”關鍵字傳參”形式傳入實參)
參數傳遞(實參):
1. 位置傳參
foo(1, 2, [3, 4, 5], *[6, 7, 8]) >>等價于>> foo(1, 2, [3,4,5], 6, 7, 8)
2. 關鍵字傳參
foo(a=1, b=2, c={“c”:3, “d”:4}, d=**{“e”:5, “f”:6}) >>>> foo(a=1, b=2, c={“c”:3, “d”:4}, e=5, f=6)
注意: