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

Python函数传参:位置参数、关键字参数和默认参数的区别

发布时间:2023-06-06 00:09:21

Python中支持三种类型的函数参数:位置参数、关键字参数和默认参数。函数传参是指在调用函数时,向函数传入参数。下面我们来详细介绍一下这三种参数在Python中的使用。

1. 位置参数

位置参数是指按照函数中参数的位置传入参数。例如下面这个函数中有两个位置参数name和age:

def introduce(name, age):
    print("My name is", name, "and I am", age, "years old.")

在使用时,我们必须按照函数定义的参数位置依次传入参数,如:

introduce("Tom", 20)

输出结果为:

My name is Tom and I am 20 years old.

如果传入的参数位置和定义的参数位置不一致,就会出现错误。

2. 关键字参数

关键字参数是指通过指定参数名称来传递参数。例如下面这个函数中有两个关键字参数name和age:

def introduce(name, age):
    print("My name is", name, "and I am", age, "years old.")

在使用时,我们可以指定参数的名称来传入参数,如:

introduce(name="Tom", age=20)

输出结果为:

My name is Tom and I am 20 years old.

关键字参数允许我们在调用函数时跳过某些参数,只传入需要的参数,并且可以不考虑参数的顺序,只需指定参数名称即可。例如:

introduce(age=20, name="Tom")

输出结果同样为:

My name is Tom and I am 20 years old.

3. 默认参数

默认参数是函数中指定默认值的参数。在调用函数时,如果我们不传递该参数,就会使用默认值。例如下面这个函数中有两个参数name和age,其中age的默认值为'unknown':

def introduce(name, age='unknown'):
    print("My name is", name, "and I am", age, "years old.")

在使用时,我们可以传递一个参数值,也可以不传递参数值,如:

introduce('Tom')

输出结果为:

My name is Tom and I am unknown years old.

我们也可以指定默认值为其他值:

def introduce(name, age=None):
    if age:
        print("My name is", name, "and I am", age, "years old.")
    else:
        print("My name is", name)

在使用时,我们可以传递一个参数值,也可以不传递参数值,如:

introduce('Tom')
introduce('Tom', 20)

输出结果为:

My name is Tom
My name is Tom and I am 20 years old.

默认参数一般用于函数中不太重要的参数,如果调用方没有传入该参数,我们可以使用默认值,并继续执行函数。

四. 总结

函数传参是函数编程中的重要概念,Python中支持三种类型的函数参数:位置参数、关键字参数和默认参数。位置参数是指按照函数中参数的位置传入参数,关键字参数是通过指定参数名称来传递参数,而默认参数是函数中指定默认值的参数。它们各自有着不同的使用场景,在编写函数时需要根据实际情况灵活使用,以提高代码的复用性和可读性。