-
位置参数
位置参数就是普通的参数变量按一定顺序排列,在定义的时候只给变量名,在调用函数时,输入的参数值也要按照这个顺序输入:- 定义:
def get_reduce(x,y): return x-y
- 调用:
注意:调用时位置参数为必填参数>>> get_reduce(98,88) 10
-
默认参数
默认参数就是在定义函数的时候给该参数一个默认值,当调用给函数时不给该参数的值,默认使用默认值:- 定义:
>>> def get_lifang(x,n=3): ... sum=1 ... while n>0: ... n-=1 ... sum*=x ... return sum
- 调用:
注意:默认参数尽量不要用list,因为它是可变对象,当多次调用时,这次会调用上次产生的值,如果需要可以将可变对象的默认值定义为>>> get_lifang(3) 27
None
-
可变参数
参数数量可以变化的参数,在定义时用*
标识:- 定义:
>>> def get_sum(*n): ... sum=0 ... for i in n: ... sum+=i ... return sum ...
- 一般参数调用:
>>> get_sum(55,77,88) 220
- 特殊参数调用:(当参数为多个元素的集合时,用
*
标注,如下:)
实质上,参数在函数内部是以一个>>> l=[99,34,66,44] >>> get_sum(*l) 243
tuple
的元素存在 -
关键字参数
关键字参数针对的是dict
,定义的时候用**
标识- 定义:
>>> def get_info(**kw): ... if 'body' in kw: ... print('system is bad') ... elif 'peter' in kw: ... print(kw['peter']) ...
- 调用:
>>> d={'peter':88,'ami':77,'baby':99} >>> get_info(**d) 88
-
命名关键字参数
命名关键字参数是在关键字参数的基础上,硬性要求关键字的名字,定义时用*
作为参数将其他关键字隔开- 定义:
>>> def to_info(p,c,*,course,age): ... print(p,c,course,age) ...
- 调用:
注意:当命名关键字前有可变参数时,>>> to_info('peter',99,course='English',age=22) peter 99 English 22
*
分隔不需要 -
参数排列顺序
([ 位置参数],[默认参数],[可变参数],[命名关键字参数],[关键字参数])
需要说明的是:它们可以组合使用,例如即是默认参数,又是命名关键字参数
网友评论