Python中的函数参数有哪些类型及其区别
Python中函数参数是使用在函数定义中的变量,用来接收传入的参数值。Python中主要的函数参数类型有四种:位置参数、默认参数、可变参数和关键字参数。
1.位置参数
位置参数是Python中最基本的参数类型。函数的位置参数是按照参数的位置对应传递进来的,即第一个参数对应第一个位置参数,第二个参数对应第二个位置参数,以此类推。位置参数必须在函数调用时以相应的顺序传入,且必须传入足够数量的参数。
示例:
def my_func(x, y, z):
print(x+y+z)
my_func(1, 2, 3)
结果输出:6
2.默认参数
默认参数是在函数定义过程中给予默认值的参数,如果用户在调用函数时没有传递该参数或传递了None,函数将使用默认值。当参数传递时,如果传递了实参,那么将使用传递的值。如果没有传递实参,则使用默认值。
示例:
def my_func(x=5, y=10, z=20):
print(x+y+z)
my_func()
结果输出:35
3.可变参数
可变参数是允许用户在传递参数时传递不同数量的参数,这些参数都被封装成一个元组或列表变量,函数通过列表或元组变量来获取传递的参数。可变参数的形式参数前添加一个星号(*),表示可以传递多个参数,并将其封装成元组。
示例:
def my_func(*args):
for i in args:
print(i)
my_func(1, 2, 3, 'four', 'five')
结果输出:1 2 3 four five
4.关键字参数
关键字参数是特殊的形式参数,是通过键值对传递参数的方式,每个参数都有一个关键字和值,函数通过关键字来获取参数的值。关键字参数的形式参数前添加两个星号(**)表示可以传递任意数量的键值对参数,并将其封装成字典。
示例:
def my_func(**kwargs):
for i, j in kwargs.items():
print(i, j)
my_func(name='Tom', age=28, profession='Engineer')
结果输出:name Tom age 28 profession Engineer
总结:
位置参数是必须要传的参数,而默认参数可以不传,如果不传,则函数内使用默认值。可变参数和关键字参数都是可选参数,可传可不传。可变参数使用*来标记,可以传递任意数量的参数。关键字参数使用**来标记,可以传递任意数量的键值对参数。函数参数类型可以灵活地组合使用,可以根据自己的需要来使用不同的参数类型。
