1 #列表、字典都可以: 2 aa = ["a", 1] 3 def test(x, *args): 4 print(x) 5 print(args) 6 return x, args 7 bb,dd = test(1, aa) 8 print(bb,dd[0][0]) 9 #输出结果: 10 #1 11 #(['a', 1],) 12 #1 a
参数分类: 位置参数:实参与形参一一对应 关键字:位置无需固定,def test(x,y,z),test( x,z=2,y= 1),实参:y= 1为位置参数,关键字参数无需高绿位置顺序,,但是位置参数必须在前 默认参数:def test(x,y=1),test(x),形参:y=1为默认参数,位置参数必须在前 参数组:*args、**kwargs。*args:列表、元组;**kwargs:字典 def test(x, *args, **kwargs): print(x) print(args) print(kwargs) test(1, 2, 3, 4, 5, p=1, o=2) #将2,3,4,5作为一个参数传给args,(2,3,4,5) test(1, [2, 3, 4, 5], p=1, o=2) #将列表作为一个参数传给args,([2,3,4,5],) test(1, *[2, 3, 4, 5], **{"p": 1, "o": 2}) #将列表中的元素迭代传给args,(2,3,4,5) #输出结果: ''' 1 (2, 3, 4, 5) {'p': 1, 'o': 2} 1 ([2, 3, 4, 5],) {'p': 1, 'o': 2} 1 (2, 3, 4, 5) {'p': 1, 'o': 2} '''
1 def test(x, *args, **kwargs): 2 print(x) 3 print(args) 4 print(kwargs) 5 6 test(1, 2, 3, 4, 5, p=1, o=2) #将2,3,4,5作为一个参数传给args,(2,3,4,5) 7 test(1, [2, 3, 4, 5], p=1, o=2) #将列表作为一个参数传给args,([2,3,4,5],) 8 test(1, *[2, 3, 4, 5], **{"p": 1, "o": 2}) #将列表中的元素迭代传给args,(2,3,4,5) 9 #输出结果: 10 ''' 11 1 12 (2, 3, 4, 5) 13 {'p': 1, 'o': 2} 14 1 15 ([2, 3, 4, 5],) 16 {'p': 1, 'o': 2} 17 1 18 (2, 3, 4, 5) 19 {'p': 1, 'o': 2} 20 '''