Python函数的参数:位置参数、默认参数、关键字参数和可变参数的介绍
发布时间:2023-06-17 04:53:13
Python函数中的参数一般分为四种:位置参数、默认参数、关键字参数和可变参数,下面将分别进行介绍。
1. 位置参数
位置参数是指必须按照函数定义中的顺序依次传递的参数,不传递或传递顺序不正确都会导致函数执行错误。例如:
def add(a, b):
return a + b
c = add(1, 2)
print(c) # 输出 3
在上面的例子中,a和b就是两个位置参数,必须按照定义的顺序依次传递。
2. 默认参数
默认参数是指在函数定义中对参数设置了默认值,调用函数时可以不传递该参数,使用默认值。例如:
def add(a, b=0):
return a + b
c = add(1)
d = add(1, 2)
print(c) # 输出 1
print(d) # 输出 3
在上面的例子中,b就是一个默认参数,设置了默认值0,如果调用时不传递b参数,则使用默认值。
3. 关键字参数
关键字参数是指在调用函数时根据参数名称进行传递,可以不按照函数定义中的顺序传递参数。例如:
def add(a, b):
return a + b
c = add(b=2, a=1)
print(c) # 输出 3
在上面的例子中,b=2和a=1就是两个关键字参数,传递时根据参数名称进行传递。
4. 可变参数
可变参数是指在函数调用时可以传递任意数量的参数,可以是0个或多个。可变参数有两种,分别是*args和**kwargs。
*args代表任意数量的位置参数,可以传递0个或多个位置参数。例如:
def add(*args):
sum = 0
for arg in args:
sum += arg
return sum
c = add(1, 2, 3)
print(c) # 输出 6
在上面的例子中,*args表示可以传递0个或多个位置参数,传递时以元组的形式传递。
**kwargs代表任意数量的关键字参数,可以传递0个或多个关键字参数。例如:
def print_info(**kwargs):
for key, value in kwargs.items():
print(key, value)
print_info(name='Jack', age=18)
在上面的例子中,**kwargs表示可以传递0个或多个关键字参数,传递时以字典的形式传递。
总结:
以上四种参数可以混合使用,但是必须按照以下顺序:
1. 位置参数
2. 默认参数
3. *args
4. **kwargs
具体使用时根据需要选择哪些参数。需要注意的是,在使用关键字参数时可以不按照函数定义中的顺序传递参数,但是位置参数必须按照定义的顺序依次传递。同时,可变参数需要使用*和**进行声明。
