1. 形参与实参
#x,y是函数内的参数,也就是形参,也叫位置参数
def test(x,y):
print(x)
print(y)
return 0
#test(1,2),1和2也就是实参,实参与形参一一对应,个数不能多,不能少
test(1,2)#位置参数调用,与形参顺序一一对应
test(x=2,y=3)#关键字参数调用,不会考虑形参顺序
#关键字参数一定要在位置参数后面
#test(x=1,2)#所以这种写法是不可行的
test(2,y=3)
#test(2,x=3)#这种写法也是不可行的
2. 默认参数
默认参数:定义形参时,已经给形参赋值
调用参数时,默认参数是可有可无,非必传
用途:默认安装、数据库默认端口号
def test(x,y=23):
print(x)
print(y)
test(2)#有默认参数时,是可以不输入默认参数
test(4,56)#也可以输入参数,会取最新参数
3.1 参数组——*args
参数组:实参不固定时,可以用*+参数名args的形式
接受多个位置参数,不是关键字参数,转换为元组
可以用于业务扩展
def test(*args):
print(args)
test(1,2,34,4,55)#实参不固定,不确定有几个
test(*[1,2,3,45])#可以与形参类似,用*+列表的形式
def test(x,*args):
print(x)
print(args)
test(1,2,3,4,5,6)
3.2 参数组——**kwargs
参数组:**kwargs把多个关键字参数,不能是位置参数,转换为字典
def test2(**kwargs):
print(kwargs)
print(kwargs["name"])#输出为字典时,可以用字典取值的方式
print(kwargs["age"])
#入参时,用关键字参数,需要用key+value的形式
test2(name="lsii",age=18)
test2(**{"name":"lsii","age":18})
def test4(name,**kwargs):
print(name)
print(kwargs)
test4("lisi")#字典值可以不用入参
实参时,字典的内容必须要用关键字参数,
而且不能与形参的关键字重复
test4("lsii",sex="m",age=15)
4. 参数组+默认参数
def test (name,age=48,**kwargs):
print(name)
print(age)
print(kwargs)
#有默认参数时,可以实参可以不写有默认参数的形参
#但是kwargs里面的还是要用关键字参数
test("zhangan",sex="m",habby="野马",age=25)
def test(name,age=18,*args,**kwargs):
print(name)
print(age)
print(args)
print(kwargs)
test("lsi",15,sex="man")
网友评论