python中的装包与解包*args和 **kwargs是常用的两个参数
可变参数args:def fun(n, *args): print(n) print(args) # 未拆包 print(*args) # 进行拆包fun(1,2,3,4)
结果:
关键字参数**kwargsdef fun(**kwargs): print(kwargs) # 未拆包 print(*kwargs) # 进行拆包fun(a=1, b=2)
结果:
解包上面介绍了args, kwargs的装包作用,起到作用的是、 这两个参数。 1. 解包的意义就是将传递给函数的一个列表,元组,字典,拆分成独立的多个元素然后赋值给函数中的参变量。2. 解压字典有两种解发,一种用*解的只有key,一种用**解的有key,value。但是这个方法**只能在函数定义中使用。
结果: [1, 2, 3]{'a': 1, 'b': 2, 'c': 3}--------------------------------------------------123abc--------------------------------------------------123a 1b 2c 3
问题:
2.函数传入实参时,可变参数(*)之后的参数必须指定参数名,否则就会被归到可变参数之中 def myfun(a, *b, c=None): print(a) print(b) print(c)myfun(1,2,3,c=4)1(2, 3)4
3.一个函数想要使用时必须明确指定参数名,可以将所有参数都放在可变参数之后
4.关键字参数都只能作为最后一个参数,前面的参数按照位置赋值还是名称赋值都可以 def myfun(a, *b, c, **d): print(a) print(b) print(c) print(d)myfun(1, 2, w=6, c=3, d=4, e=5) # 记住可变参数(*)之前不能指定参数名1(2,)3{'w': 6, 'd': 4, 'e': 5}
|
|