可变参数和关键字参数的用法
发布时间:2023-06-10 16:11:32
可变参数和关键字参数在Python中是常用的概念,它们都是用来处理函数传递参数的。本文将详细说明这两个参数的用法及示例。
一、可变参数
可变参数顾名思义就是参数的个数是可变的,比如一个函数要求传入无数个参数,而我们又不知道具体传入参数的个数,这时候就需要用到可变参数。
Python中的可变参数有两种形式,分别是*args和**kwargs。
1. *args
*args用于传递任意个数的非关键字参数,即将参数打包成一个元组传入函数体。例如:
def func(*args):
for arg in args:
print(arg)
func(1, 2, 3)
上述代码中,*args将传入参数打包成一个元组(args),然后遍历打印输出。
2. **kwargs
**kwargs用于传递任意个数的关键字参数,即将参数打包成一个字典传入函数体。例如:
def func(**kwargs):
for key, value in kwargs.items():
print(key, value)
func(a=1, b=2, c=3)
上述代码中,**kwargs将传入参数打包成一个字典(kwargs),然后遍历打印输出。
二、关键字参数
关键字参数和可变参数类似,也是用于传递参数的一种形式。它与可变参数的区别在于,关键字参数是按照参数名传递的,而且传递的参数个数也可以是不确定的。
Python中的关键字参数是在函数定义时通过“关键字=值”的形式指定的,例如:
def func(a, b, c=0):
print('a=', a, 'b=', b, 'c=', c)
func(1, 2, c=3)
上述代码中,c=0为默认参数,也是关键字参数,调用函数时可以通过“参数名=值”的形式来指定c的值。
总结
可变参数和关键字参数在Python中都是非常灵活的参数形式,能够解决很多函数传参的问题。需要注意的是,使用可变参数和关键字参数时,传入参数的个数要与函数定义时的参数个数相匹配,否则程序会运行出错。
