【python基础】*args与**kwargs动态参数的用法与区别
1.直接看简单的例子:
#encoding:utf-8 #@Time:2019/7/6 23:50 #@Author:sunny #args:元祖 #kwargs:字典 def A(*args): print("args的类型:",type(args)) print(args) a=A(1,2,3,4) def B(**kwargs): print("kwargs的类型:",type(kwargs)) print(kwargs) b=B(a=1,b=2,c=4) def fun(a=999,*args,**kwargs): print("args的值为:",args) print("kwargs的值为:",kwargs) fun(55,66,77,name="xiaoxiao",girl=18)
打印输出:
args的类型: <class 'tuple'> (1, 2, 3, 4) kwargs的类型: <class 'dict'> {'a': 1, 'b': 2, 'c': 4} args的值为: (66, 77) kwargs的值为: {'name': 'xiaoxiao', 'girl': 18}
由上可知:
- 普通参数,即在调用函数时必须按照准确的顺序来进行参数传递。
- 默认参数,即参数含有默认值,在调用函数时可以进行参数传递,若没有进行参数传递则使用默认值,要注意,默认参数必须在普通参数的后面(否则解释器无法解析)。
- 元组参数,即 *args,参数存储在一个元组中,长度没有限制,必须位于普通参数和默认参数之后。
- 字典参数,即 **kwargs,参数存储在一个字典中,必须位于参数列表的最后面
善于跌倒仍喜爱奔跑~

浙公网安备 33010602011771号