当前位置: 首页 > 后端技术 > Python

Python函数的主要参数类型

时间:2023-03-25 23:30:08 Python

形式参数(formalparameters)在函数定义阶段定义的参数称为形式参数,相当于变量名位置参数(ordinaryformalparameters)位置参数:在函数定义阶段,从左到右依次定义特征:它必须传值,实际参与的形参**是按顺序一一对应的**,多一个少一个都不行!deffunc():传递默认参数defaultparameter:在函数定义阶段,已经赋值参数deffunc(x,y=1):传递普通集合形参normalcollection形参:用于接收位置超出部分的参数,溢出部分会被*保存为一个元组类型,然后赋值给后面的*形参接收deffunc(x,y,*args):print(x,y)print(args)func(1,2,3,4,5,6,7,78,8,89)*后面的形式参数名一般定义为args,是收集形参的习惯关键字。关键字集合形参:用于接收extra部分的关键字实参,溢出部分会**保存为字典类型,然后赋值给后面的**形参接收deffunc(x,y,**kwargs):print(x,y)print(kwargs)func(a=1,b=2,c=3,x=4,y=5,z=6)**后面的形参名一般是定义为kwargs,是命名关键字形参的约定命名关键字形参:定义函数时,定义在*后面的参数为命名关键字形参特点:命名关键字实参必须以key=value的形式传递#y=2是有默认值的命名关键字参数,不是默认参数,所以可以放在z前面deffunc(x,*,y=2,z):print(x)#其中,y和z是命名关键字形参print(y,z)func(1,z=3)实参(actualparameters)在调用函数阶段定义的参数称为realParameter,即equivalenttothevariablevaluepositionactualparameter(ordinaryactualparameter)positionactualparameter:在函数调用阶段,从左到右依次传递的值特点:实际参与形参**按顺序**一一对应deffunc(x,y):print(x+y)func(1,2)关键字实参关键字实参:在函数调用阶段,以key=value的形式传入的值特点:赋值给特定形参可以传值,也可以乱序传值deffunc(x,y):print(x+y)func(y=1,x=2)func(x=2,y=1)*和***和**的使用在函数定义时使用1)*:将多余的公共参数打包到元组中2)**:将多余的关键字参数打包到字典中*和**在函数调用时使用1)*:解压元组或list2)**:unpackdictionary*和**用在函数定义和调用时同时使用1)先解包成为位置参数2)再对位置参数进行冗余打包#例1deffunc(x,y,z):打印(x,y,z)func(*[1,2,3])func(*(1,2,3))func(**{"x":1,"y":2,"z":3})#例2deffunc(x,y,z,*args):print(x,y,z)print(args)func(5,6,7,*[1,2,3])形参与实参的关系在调用阶段,实参会与形参绑定。这种绑定关系只能用在函数体中。绑定关系只在函数调用时生效,函数调用完成后绑定关系解除组合使用形参时,位置形参必须在默认形参的左边。不能重复传递相同的参数。默认形参对应的实参可以传也可以不传。**kwargs在前面,否则会报语法错误