傳參的幾種方法
(1)位置傳參:顧名思義盖腿,按照參數(shù)的先后順序區(qū)分該參數(shù)衅码。
(2)關(guān)鍵字傳參:關(guān)鍵字=參數(shù)的形式定续,不拘泥于參數(shù)傳遞的先后順序
(3)可變參數(shù):*args
,**kwargs
*args
和**kwargs
有的時(shí)候你不確定后續(xù)可能會(huì)傳幾個(gè)參數(shù)粥脚,所以可變參數(shù)這不就來了嘛
args和kwargs不是必須的窃肠,但是*是必須的
*:tuple類型
**:字典類型
如果一起用,要先args刷允,再*kwargs
# 舉例
def func(arg, *i, **j):
print("arg:", arg)
print("args:", i, "args類型:", type(i))
# print("*args:", *i, "*args類型:", type(*i))
# type(*i)報(bào)錯(cuò):TypeError: type.__new__() argument 2 must be tuple, not str
print("*args:", *i)
print("kwargs:", j, "kwargs類型:", type(j))
print("**kwargs:", j, "**kwargs:", type(j))
func(1, 'beauty', 'handsome', '嗨', q='lala', e='baby')
'''
輸出結(jié)果
arg: 1
args: ('beauty', 'handsome', '嗨') args類型: <class 'tuple'>
*args: beauty handsome 嗨
kwargs: {'q': 'lala', 'e': 'baby'} kwargs類型: <class 'dict'>
**kwargs: {'q': 'lala', 'e': 'baby'} **kwargs: <class 'dict'>
'''