python中,在形參前面加上“*”與“”“**”老速,稱為動(dòng)態(tài)參數(shù)
加“*”時(shí)粥喜,函數(shù)可接受任意多個(gè)參數(shù),全部放入一個(gè)元祖中
加“**”時(shí)橘券,函數(shù)接受參數(shù)時(shí)额湘,放入字典中
===============================================
def F(*args):
? ? print(args)
li = [11,22,33,44]
F(li)
F(*li)
# ([11, 22, 33, 44],)
# (11, 22, 33, 44)
===============================================
def F(**kwargs):
? ? print(kwargs)
li = {"k1":1,"k2":2}
F(k=li)
F(**li)
# {'k': {'k2': 2, 'k1': 1}}
# {'k2': 2, 'k1': 1}
===============================================
def F(p,*args,**kwargs):
? ? print(p)
? ? print(args)
? ? print(kwargs)
F(11,"abc",[789],k1=123,k2="456")
# 11
# ('abc', [789])
# {'k1': 123, 'k2': '456'}
帶一個(gè)星號(*)參數(shù)的函數(shù)傳入的參數(shù)存儲(chǔ)為一個(gè)元組(tuple)秕铛;
而帶兩個(gè)星號(*)參數(shù)的函數(shù)傳入的參數(shù)則存儲(chǔ)為一個(gè)字典(dict)
由于傳入的參數(shù)個(gè)數(shù)不定,所以當(dāng)與普通參數(shù)一同使用時(shí)缩挑,必須把帶星號的參數(shù)放在最后