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

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

具体使用时根据需要选择哪些参数。需要注意的是,在使用关键字参数时可以不按照函数定义中的顺序传递参数,但是位置参数必须按照定义的顺序依次传递。同时,可变参数需要使用*和**进行声明。