1.关键字参数不能写在位置参数前面
2.默认参数:
特点:调用函数时,默认参数可有可无
3.参数组参数
实际参数不固定:形参以*开头即可 eg:*args
接受N个位置参数,转换成元组的形式
#coding:utf-8 def test(*a): print(a) test(1,2)
与位置参数结合:
def test1(x,*args): print(x) print(args) test1(1,2,3,4)
**kwargs:把N个关键字参数转换成字典的方式:
def test2(**kwargs): print(kwargs) print(kwargs['name']) print(kwargs['age']) print(kwargs['sex']) test2(name='alex',age=8,sex='F') test2(**{"name":"alex","age":8,"sex":"F"})
跟位置参数一起用:输出为{}
def test3(name,**kwargs): print(name) print(kwargs) test3('alex')
输出有值:
def test3(name,**kwargs): print(name) print(kwargs) test3('alex',age=18,sex='m')
参数组一定要往后放
def test4(name,age=18,**kwargs): print(name) print(age) print(kwargs) test4('alex',sex='m',hobby='tesla',age=3)
def test5(name,age=18,*args,**kwargs): print(name) print(age) print(args) print(kwargs) test5('alex',age=34,sex='m',hobby='testla')
结果:
alex
34
()
{'sex': 'm', 'hobby': 'testla'}