python函数中的*与**
2021-04-30 07:29
标签:报错 遍历 st3 style python函数 参数 print 语法 参数形式 1)*将函数参数打包成元组使用,传入参数为位置参数形式 >>> def test1(*arge): ... print(arge) ... >>> test1(1) (1,) >>> test(1,2,3,4) >>> def test2(x,*args): ... print(x) ... print(args) ... >>> test2(1,23,4,5,6) 1 (23, 4, 5, 6) 若当参数为列表,元组,集合的时候想要将其中元素独立传入函数中,可以使用*来解包 >>> test1([1,2,3,4,5,6]) ([1, 2, 3, 4, 5, 6],) >>> test1(*[1,2,3,4,5,6]) (1, 2, 3, 4, 5, 6) >>> test1(*{1,2,3,4,5,6}) (1, 2, 3, 4, 5, 6) >>> test1(*(1,2,3,4,5,6)) (1, 2, 3, 4, 5, 6) 当传参是使用*解包字典的时候作用是将字典遍历传输,值为字典的key值 >>> test1(*{‘Alice‘: ‘2341‘, ‘Beth‘: ‘9102‘, ‘Cecil‘: ‘3258‘}) (‘Alice‘, ‘Beth‘, ‘Cecil‘) 2)**将函数参数打包成字典形式,传入参数为关键字参数形式 >>> def test3(**kwargs): ... print(kwargs) >>> def test4(x,**kwargs): ... print(x) ... print(kwargs) >>> test3(z=1,y=2,c=3) {‘z‘: 1, ‘y‘: 2, ‘c‘: 3} >>> test4(1,a=2,b=3) 1 {‘a‘: 2, ‘b‘: 3} 若实参为字典时可以使用**解包,将字典解包成关键字参数传入,不解包会报错 >>> test3(**{‘Alice‘: ‘2341‘, ‘Beth‘: ‘9102‘, ‘Cecil‘: ‘3258‘}) {‘Alice‘: ‘2341‘, ‘Beth‘: ‘9102‘, ‘Cecil‘: ‘3258‘} 3)混用 >>> def test5(x,*args,**kwargs): ... print(x) ... print(args) ... print(kwargs) ... >>> test5(1,2,3,4,a=5,b=6) 1 (2, 3, 4) {‘a‘: 5, ‘b‘: 6} 4)错误语法 在定义参数的时候*必须在**前否则报错 >>> def test7(x,**kwargs,*args): File " def test7(x,**kwargs,*args): ^ SyntaxError: invalid syntax python函数中的*与** 标签:报错 遍历 st3 style python函数 参数 print 语法 参数形式 原文地址:https://www.cnblogs.com/hjhlg/p/13228657.html