欢迎访问宙启技术站
智能推送

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函数中非常实用的可变参数,可以使函数传递更加灵活,同时有效地减少了代码的重复性。在使用时,需要注意参数的顺序和传递方式,以免出现疏漏和错误。