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

Python函数的参数及传递方式

发布时间:2023-06-04 09:16:51

Python函数的参数及传递方式是函数编程中非常重要的一部分,因为参数的传递方式不同会直接影响程序的性能。Python的参数传递方式主要有四种,分别是位置参数、默认参数、可变长参数和关键字参数。

位置参数

位置参数也就是普通参数,是指按照函数定义时参数的顺序来传递参数。例如下面的代码中函数test()的参数a和b就是位置参数。

#位置参数
def test(a,b):
  print(a,b)
  
 
test(1,2) #1 2

默认参数

默认参数和位置参数一样,都是在调用函数时传递给函数的值。默认参数是指函数在定义时为某个参数赋予一个默认值,当调用函数时不用再传递该参数的值,如果传递了值,则使用传递的值。例如下面的代码中参数b就是一个默认参数,它的默认值为2,如果在调用函数时不传递b的值,则b的默认值为2。

#默认参数
def test(a,b=2):
  print(a,b)

test(1) #1 2
test(1,3) #1 3

可变长参数

可变长参数是指在函数定义时可以接受任意数量的参数,也就是说在函数调用时,参数的数量是不确定的。Python的可变长参数有两种,一种是传递元组类型的可变长参数,另一种是传递字典类型的可变长参数。

1. 传递元组类型的可变长参数

在函数的参数列表中,以*开头的参数,表示传递的参数为可变长的元组类型。例如下面的代码中要实现函数test(),可以传入任意数量的参数,它的参数args为元组类型的可变长参数。

#传递元组类型的可变长参数
def test(*args):
  for arg in args:
    print(arg)

test(1,2,3) 
#1
#2
#3

2. 传递字典类型的可变长参数

在函数的参数列表中,以**开头的参数,表示传递的参数为可变长的字典类型。例如下面的代码中要实现函数test(),可以传入任意数量的参数,它的参数kwargs为字典类型的可变长参数。

#传递字典类型的可变长参数
def test(**kwargs):
  for key, value in kwargs.items():
    print(key, ":", value)

test(name="张三", age=18, sex="男")
#name : 张三
#age : 18
#sex : 男

关键字参数

关键字参数是指函数调用时,使用参数名指定参数的值。例如下面的代码中函数test()的参数a和b就是关键字参数,调用函数时可以使用参数名指定参数的值。

#关键字参数
def test(a,b):
  print(a,b)

test(b=2,a=1) #1 2

需要注意的是,在函数调用时,位置参数不能放在关键字参数之后。例如下面的代码中调用函数test()时,因为关键字参数b在位置参数2之前,所以会出错。

test(1,b=2,3) #错误

总结

Python函数的参数传递方式有四种,分别是位置参数、默认参数、可变长参数和关键字参数。位置参数和默认参数是函数调用时最常用的参数传递方式,通常用来传递固定的参数。可变长参数虽然不常用,但在某些场合下却很方便。而关键字参数则适用于那些参数数量多,但不确定是否全部需要传递的情况。程序员应该根据实际需求灵活选择参数传递方式。