每天至少打卡一道python面試題围俘。以盡量多的方式解鎖題目砸讳,如果有遺漏的方法,歡迎在評論區(qū)補充界牡。希望大家一起提高簿寂!
*args表示可變參數(shù),即參數(shù)個數(shù)不固定宿亡,在函數(shù)中接收到的args是一個元組常遂。
我們通過下面兩個示例來了解args的用法。
- args會將傳入?yún)?shù)轉(zhuǎn)換為元組
- 使用args可以接收任意長度的參數(shù)
- 當(dāng)args前面還有其他參數(shù)時挽荠,在傳參時優(yōu)先按照位置填充克胳,前面參數(shù)填充完后平绩,多余的參數(shù)全部由args接收
def func_args_01(*args):
print('args type is: %s' % type(args))
print(f'args value: {args}')
def func_args_02(a, b, *args):
print('args type is: %s' % type(args))
print(a, b, args)
if __name__ == '__main__':
func_args_01(1, 2, 3)
# args type is: <class 'tuple'>
# args value: (1, 2, 3)
func_args_01()
# args type is: <class 'tuple'>
# args value: ()
func_args_02(1, 2, 3, 4)
# args type is: <class 'tuple'>
# args value: 1 2 (3, 4)
**kwargs表示關(guān)鍵字參數(shù),在調(diào)用時漠另,必須使用key=value的形式傳入捏雌,在函數(shù)中接收到的kwargs是一個字典
另外,需要注意的是:參數(shù)arg笆搓、*args性湿、**kwargs三個參數(shù)的位置必須是一定的,必須是(arg,args,*kwargs)這個順序满败,否則會報錯肤频。
arg叫做位置參數(shù)
*args叫可變參數(shù)
**kwargs叫關(guān)鍵字參數(shù)