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

Python函数的参数传递与参数默认值

发布时间:2023-06-17 16:10:52

Python中的函数是一个特殊的对象,可以接受参数并执行任务,然而,函数的参数传递方式以及参数默认值是Python中函数的两个重要概念。本文将分别简述这两个概念。

1. Python函数参数传递

Python中的函数参数传递分为三种方式:位置参数、关键字参数和可变参数。

(1)位置参数

位置参数是指函数定义中用于接受参数的变量名,只有传递参数的值与函数定义中的参数顺序相同才能正确执行函数。

例如下列代码:

def func(a, b):
    return a + b

print(func(3, 4))

输出结果为7,因为在函数调用时传递的参数(3,4)的顺序与函数定义中的参数(a,b)的顺序相同。

(2)关键字参数

与位置参数不同,关键字参数是指将变量名作为关键字传递,这种参数必须显式声明。使用关键字参数可以忽略位置,而只关注参数的名字。

例如下列代码:

def func(a, b):
    return a + b

print(func(b=4, a=3))

输出结果为7,因为在函数调用时使用了关键字参数b=4和a=3,这使得函数能够正确执行。

(3)可变参数

可变参数是指在函数传参时可以传递任意数量的参数,它分为两种:不定长位置参数和不定长关键字参数。

不定长位置参数用单个星号(*)表示,将传入的参数作为元组传递给函数。例如:

def func(*args):
    return sum(args)

print(func(1, 2, 3, 4))

这里会输出10,因为函数的参数是不定长位置参数,所以可以传入任意数量的参数,并用sum函数将所有参数求和。

不定长关键字参数用双星号(**)表示,将传入的参数作为字典传递给函数。例如:

def func(**kwargs):
    return kwargs

print(func(a=1, b=2, c=3))

这里会输出一个字典{'a': 1, 'b': 2, 'c': 3},因为函数的参数是不定长关键字参数,所以可以传入任意数量的关键字参数,并返回一个字典。

2. Python函数参数默认值

Python中函数的参数也可以设置默认值,当函数调用时未传递某个参数时,将会使用默认值,否则就会使用传递的参数值覆盖默认值。

例如下面的代码:

def func(a=1, b=2):
    return a + b

print(func(3, 4))
print(func())

输出结果为7和3,因为在第一个调用中,3和4覆盖了默认值1和2,所以函数返回7;在第二个调用中,没有传递参数,所以使用了默认值1和2,函数返回3。

需要注意的是,当函数的参数有默认值时,函数调用时可以不传递参数,但是如果想传递某个参数时,必须要指定该参数的名称。因为使用位置参数传递参数会覆盖前面的参数值。

例如下面的代码:

def func(a=1, b=2):
    return a + b

print(func(b=4))  # 输出结果为5

这里指定了b的值为4,而没有指定a的值,此时a的值为默认值1,函数返回5。

总结

Python中的函数参数传递方式包括位置参数、关键字参数和可变参数,这三种方式都在不同的情况下使用。此外,Python中的函数还可以设置参数的默认值,在函数调用时可以使用默认值,也可以覆盖默认值。掌握了函数参数传递和默认值的使用方法,可以让我们编写更加灵活和高效的代码。