一、python中的函数参数形式
python中函数一般有四种表现形式:
1、def function(arg1, arg2, arg3...)
这种是python中最常见的一中函数参数定义形式,函数参数之间用逗号分隔,调用的时候的参数必须与定义的时候相同,且参数顺序与形参一一对应。
1
2
3
4
5
6
7
8
9
|
def myfunction(a, b):
print
a,b
#正确调用 myfunction( 3 , 7 )
#错误调用 myfunction( 3 )
myfunction( 2 , 3 , 5 )
|
2、def function(arg1, arg2 = xx,arg3 = yy...)
这种定义方式其实和第一种类似,不同的只是提供了一个默认值。调用的时候有默认参数的形参可以不提供值。
1
2
3
4
5
6
7
8
9
|
def myfunction(a, b = 0 ):
print
a,b
#正确调用 myfunction( 1 )
myfunction( 3 , 9 )
myfunction(a =
3 , b =
9 )
#还可以这样调用 myfunction(b =
9 , a =
3 )
|
3、def function(*arg)
这种方式是在不确定参数的个数的时候用到,有时候我不知道该传多少个实参给函数,在形参前面加上一个*表示这个函数的参数不确定,参数可以是0个或多个。如果我们将传进来的参数打印下来,发现参数是一个元组的形式。
1
2
3
4
5
6
|
def myfunction( * arg):
print
arg
myfunction( 34 , 43 , 2 )
>>>( 34 , 43 , 2 )
|
4、def function(**arg)
形参前面加两个星号表示传入的形参在函数内部将表示成字典形式。调用该方法的形式是:functiong(a=xx, b=yy...)
1
2
3
4
5
6
|
def myfunction( * * arg):
print
arg
myfunction(a =
2 , b =
4 , c =
8 )
>>>{a: 2 , b: 4 , c: 8 }
|
注: 如果以上四种参数形式出现在同一个函数中的时候,参数的优先级是1>2>3>4, 也就是参数解析方式是按这个顺序来解析的。