Python 函数参数 - 默认参数、可变参数和关键字参数
在 Python 中,函数参数分为三种类型:默认参数、可变参数和关键字参数。本文将对这三种参数类型进行详细介绍。
1. 默认参数
默认参数指的是在定义函数时为参数设定一个默认值,使得在函数调用时,如果没有传入对应参数,就使用默认值。默认值在定义函数时设置,定义形式为:
def func(a, b=10):
pass
上面的例子中,b 的默认值为 10。这样当函数被调用时,如果没有传入 b 的值,就会默认使用 10。
另外,Python 中默认参数的值在定义函数时就被确定,因此默认参数只需要定义一次即可,而不像 C 语言中需要每次都重置传入的参数值。
2. 可变参数
可变参数指的是可以接受任意多个参数的函数参数。在 Python 中,可以使用 *args 表示可变参数。定义形式如下:
def func(*args):
pass
上面的定义形式中,*args 表示接受任意多个参数,所有传入的参数在函数内部会被以元组的形式保存。例如,调用 func 函数时可以传入任意多个参数:
func(1, 2, 3)
func('hello', 'world')
在函数内部,可以对这些传入的参数做任意操作。
3. 关键字参数
关键字参数也是可以接受任意多个参数的函数参数,不过不同于可变参数,它们是以键值对的形式传入的。在 Python 中,可以使用 **kwargs 表示关键字参数。定义形式如下:
def func(**kwargs):
pass
上面的定义形式中,**kwargs 表示接受任意多个关键字参数,所有传入的参数会以字典的形式保存在函数内部。例如,调用 func 函数时可以传入任意多个关键字参数:
func(name='Tom', age=18) func(a=1, b=2, c=3)
传入的关键字参数在函数内部以字典的形式保存,在函数内部可以对它们进行任意操作。
注意:可变参数和关键字参数可以同时使用,它们的顺序为:先接收可变参数,在接收关键字参数。例如:
def func(*args, **kwargs):
pass
这样定义的函数可以同时接受任意多个参数和关键字参数。
总结
本文主要介绍了 Python 中的三种函数参数类型:默认参数、可变参数和关键字参数。在函数的定义中可以通过设置默认参数来使函数调用时可以省略掉一些参数。可变参数和关键字参数则可以接受任意个参数,方便代码的编写。同时可变参数和关键字参数也可以同时使用,给函数的编写提供了更大的灵活性,代码的可读性和可维护性也得到了进一步提升。
