python:方法参数的各种形式
# 0、位置参数正常传参# 一、参数可以设置默认值# 二、关键字参数传参时需要指定 形参名值# 关键字参数必须放在位置参数后面如果一个参数是关键字参数那么它后面的参数就都是关键字参数# 三、可变参数分两种# 1、*参数名在定义它的函数中以元组的形式接收实参值# 2、**参数名在定义他的函数中以字典的形式接收实参值# 可变参数必须在形参列表的最末尾而且‘**参数’必须在‘*参数’的后面# 四、解包传参# 五、强制使用位置传参或关键字传参# / : 前面的参数必须使用位置参数# * : 后面的参数必须使用关键字参数# 一、参数可以设置默认值设置默认值的参数必须放在最后如果不传参就用默认值print(参数设置默认值)defmethod1(x,y,z使用默认z坐标):print(fx-{x}, y-{y}, z-{z})# 方法内-运行结果x-X, y-Y, z-使用默认z坐标method1(X,Y)# 二、关键字参数传参时需要指定 形参名值# 关键字参数必须放在位置参数后面如果一个参数是关键字参数那么它后面的参数就都是关键字参数print(关键字参数)defmethod2(x,y,z):print(fx-{x}, y-{y}, z-{z})# 方法内-运行结果x-X, y-Y, z-Zmethod2(yY,zZ,xX)# 三、可变参数 可变参数必须在形参列表的最末尾而且‘**参数’必须在‘*参数’的后面print(可变参数)# 1、*参数名在定义它的函数中以元组的形式接收实参值defmethod3(flag,*args):sum0ifflag:foriteminargs:sumitemprint(f可变参数累加和为{sum})else:print(f输入的可变参数有{len(args)}个)method3(True,1,2,3)# 可变参数累加和为6# 2、**参数名在定义他的函数中以字典的形式接收实参值defmethod4(nums,**kwargs):print(f输入的nums为{nums})forkey,valueinkwargs.items():print(fkey:value -{key}:{value})method4(100,name张三,age18,sex1)# 结果# key:value - name:张三# key:value - age:18# key:value - sex:1# 四、解包传参print(解包传参)defmethod5(type,name,age,sex):print(f{type}解包传参{name},{age},{sex})#列表解包传参method5(列表,*[李四,18,0])#字典解包传参(key值和方法形参对应上method5(字典,**{name:王五,age:20,sex:1})# 结果# 列表解包传参name李四,age18,sex0# 字典解包传参name王五,age20,sex1# 五、强制使用位置传参或关键字传参# / : 前面的参数必须使用位置参数# * : 后面的参数必须使用关键字参数print(强制使用位置传参或关键字传参)defmethod6(param1,param2,/,param3,param4,*,param5,param6):print(f位置参数{param1}、{param2}- 中间参数{param3}、{param4}- 关键字参数{param5}、{param6})method6(位置参数1,位置参数2,位置参数3,param4关键字参数4,param6关键字参数6,param5关键字参数5,)# 结果位置参数位置参数1、位置参数2 - 中间参数位置参数3、关键字参数4 - 关键字参数关键字参数5、关键字参数6结果参数设置默认值x-X, y-Y, z-使用默认z坐标关键字参数x-X, y-Y, z-Z可变参数可变参数累加和为6输入的nums为100key:value - name:张三key:value - age:18key:value - sex:1解包传参列表解包传参name‘李四’,age18,sex‘0’字典解包传参name‘王五’,age20,sex‘1’强制使用位置传参或关键字传参位置参数位置参数1、位置参数2 - 中间参数位置参数3、关键字参数4 - 关键字参数关键字参数5、关键字参数6