每天至少打卡一道python面试题。以尽量多的方式解锁题目,如果有遗漏的方法,欢迎在评论区补充。希望大家一起提高!
*args表示可变参数,即参数个数不固定,在函数中接收到的args是一个元组。
我们通过下面两个示例来了解args的用法。
- args会将传入参数转换为元组
- 使用args可以接收任意长度的参数
- 当args前面还有其他参数时,在传参时优先按照位置填充,前面参数填充完后,多余的参数全部由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表示关键字参数,在调用时,必须使用key=value的形式传入,在函数中接收到的kwargs是一个字典
另外,需要注意的是:参数arg、*args、**kwargs三个参数的位置必须是一定的,必须是(arg,args,*kwargs)这个顺序,否则会报错。
arg叫做位置参数
*args叫可变参数
**kwargs叫关键字参数