Python每日一问07
Posted Elegant Smile
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python每日一问07相关的知识,希望对你有一定的参考价值。
问:请解释使用 *args 和 **kwargs 的含义
答:
*args:非关键字参数,表示将实参中按照位置传值,多余的值都给 args,多余的实参被打包成 tuple(元组),然后传递给函数调用
# 定义函数 def func(a,b,*args): pass func(1,2,c,d,e) # 1被赋值给a,2被赋值给b, # c,d,e被打包成元组,存在args中
**kwargs:关键字参数,表示形参中按照关键字传值,多余的值(以 k=v 的 形式)都给 kwargs,多余的关键字实参被打包成 dict(字典),然后传递给函数调用
#定义函数 def func(a,b,**kwargs): pass func(3,4,c=1,d=2) #c,d存在 kwargs 中,以字典的形式存在
注:如果要同时使用 *args 和 **kwargs ,必须 *args 参数列要在 **kwargs 前
以上是关于Python每日一问07的主要内容,如果未能解决你的问题,请参考以下文章
Java -- 每日一问:有人说“Lambda能让Java程序慢30倍”,你怎么看?