Python函数中的可变参数 - *args和**kwargs的用法
发布时间:2023-06-05 12:28:14
Python中的可变参数是指函数传递时不确定参数的个数,分为两种,一种是*args,一种是**kwargs,两种方法共同使用可以更灵活地处理函数传递的变量。
1. *args
*args表示不确定个数的非关键字参数,将所有参数打包成一个元组,传给函数体,函数调用时,参数数量可以少于定义的参数数量。
举个例子:
def sum(*args):
result = 0
for i in args:
result += i
return result
print(sum(1,2,3,4)) // 输出:10
print(sum(1,2)) // 输出:3
通过*args可以轻松实现多个数字之和的求解,而参数的个数可以任意增加或减少,调用方的灵活性也更强。
2. **kwargs
**kwargs表示不确定个数的关键字参数,将所有参数打包成一个字典,传递给函数体,函数调用时,参数数量可以少于定义的参数数量。
举个例子:
def get_detail_info(**kwargs):
for key, value in kwargs.items():
print(f'{key}: {value}')
get_detail_info(name='Lucy', age=18, gender='female')
// 输出:
/*
name: Lucy
age: 18
gender: female
*/
通过**kwargs可以轻松实现任意关键字参数的传递,而且可以直接在函数中使用字典来处理多个参数的传递,非常方便。
3. *args和**kwargs的合并使用
*args和**kwargs可以一起使用,但是要注意参数的顺序为先*args,再**kwargs,调用函数时需要注意参数的传递。
举个例子:
def print_format(*args, **kwargs):
for i in args:
print(i)
for key, value in kwargs.items():
print(f'{key}: {value}')
print_format(1, 2, 3, name='Lucy', age=18, gender='female')
// 输出:
/*
1
2
3
name: Lucy
age: 18
gender: female
*/
通过*args和**kwargs的合并使用,可以实现任意参数的传递和处理,这种灵活性在函数传递时非常有用。
总结
通过以上的介绍,我们可以看出,*args和**kwargs是Python函数中非常实用的可变参数,可以使函数传递更加灵活,同时有效地减少了代码的重复性。在使用时,需要注意参数的顺序和传递方式,以免出现疏漏和错误。
