标签:python args 解包 参数 kwargs 报错 unpack
先看*args做了什么:
可以看到func预期只给了三个位置参数来接受*args 解包出来的参数,一旦解包多出3个,也就是报错案例给的4个就会报错:
def func_unpack(*args):
print("get position args is {}".format(args))
print("unpack args to a,b,c three param:")
a,b,c=args
print(a,b,c)
func_unpack(*args)
表示接受任意个与Java Object... 一个原理:
结果:
get position args is (1, 2, 3)
unpack args to a,b,c three param:
再来类推**kwargs:
可以看到:d=4这个没有的位置参数被传给他会报错
接着我们使用**kwargs测试,解包keyword 参数:
结果可以看到
同样再多穿一个关键字参数d=xxx,观察异常解包keyword参数:
结果:
最后我们来任意位置参数解包:
总结:*args,**kwargs其实就是编译器自动为我们解包参数给函数的功能,我们不管实现过程只要把你想传入的参数通过*解包和**解包扔给函数,他就会自动帮你完成解包过程
标签:python,args,解包,参数,kwargs,报错,unpack 来源: https://www.cnblogs.com/SunshineKimi/p/12721503.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。