前言;在进行调用函数之间传参时,难免会遇到各种参数形式,下来我们来看看Python中位置参数、关键字参数、默认参数和不定长参数(非固定参数)
一.位置参数:
函数调用时,根据形参的位置进行传递参数:
示例:
"""
位置参数;位置必须以一对应,缺一不可
"""""#函数的定义defmy_n(name,age):print("我的姓名是:%s,我的年龄是:%d岁"%(name,age))#调用函数
my_n("小王",20)
位置参数:位置必须一一对应,缺一不可
二.关键字参数:
关键字参数:只需要书写正确的形参名称
示例:
#定义函数defmy_nn(name,age):print("我的姓名是:%s,我的年龄是:%d岁"%(name,age))#函数调用
my_nn(name="小李",age=20)
my_nn(age=20,name="小红")
运行结果:
注意:
- 有位置参数时,关键字参数要放在位置参数的后面
- 不能对一个形参多次传值
- 当存在多个关键字参数时,参数位置不分先后
错误示范:
三.默认参数:
缺省参数:形参给予一个数值,如果调用时候不再次进行赋值,那么调用的是默认值,否则是重新赋的值
格式:def 函数名(参数1,参数2=数值)
举例:
defmy_nnn(name,age=21):return name,ageprint(my_nnn("王"))print(my_nnn("小",20))
运行结果:
注意:
- 可以更改默认参数的值,也可以不更改:
- 如果已经写了默认参数,那么后面不能再写形参,也就是说默认参数在形参的后面:
- 如果没有参数,则为默认值,如果重新写了数值,则为重写后的数值:
四.不定长参数(非固定参数)
不定长参数(非固定参数):在不确定传入参数的数量时,会用到不定长参数,不定长参数又有两种,不定长参数元组 和 不定长参数字典:
1.不定长参数元组(*args):
顾名思义不定长参数元组是一个元组了,格式::def 函数名(*参数名):
*args 接收的是实参,位置参数,将其转化成元祖返回
举例:
#不定长参数元组;defret(*args):print(args)print(type(args))print(len(args))
ret(1,2,3,4,5,6,7,8,9)
结果:
2.不定长参数字典(**kwargs):
格式:def 函数名(**参数名)
**kwargs 接收到的是实参,关键字参数,将其转化成字典
举例:
#不定长参数字典defdict(**kwargs):print(kwargs)print(type(kwargs))print(len(kwargs))print(kwargs["name"])dict(name="hello",age=20)
结果: