设为首页 加入收藏

TOP

Python函数参数*args 和**kwargs的用法
2015-12-15 23:09:21 来源: 作者: 【 】 浏览:11
Tags:Python 函数参数 args kwargs 用法

args就是所有参数的数组,kwargs就是当你传入key=value是存储的字典,当函数的参数不确定时,可以使用*args 和kwargs,*args 没有key值,kwargs有key值


? ? def fun_var_args(farg, *args):?
? ? ? ? print "arg:", farg?
? ? ? ? for value in args:?
? ? ? ? ? ? print "another arg:", value?
? ? ?
? ? fun_var_args(1, "two", 3) # *args可以当作可容纳多个变量组成的list?


result:


arg: 1?
another arg: two?
another arg: 3


**kwargs:


? ? def fun_var_kwargs(farg, **kwargs):?
? ? ? ? print "arg:", farg?
? ? ? ? for key in kwargs:?
? ? ? ? ? ? print "another keyword arg: %s: %s" % (key, kwargs[key])?
? ? ?
? ? fun_var_kwargs(farg=1, myarg2="two", myarg3=3) # myarg2和myarg3被视为key, 感觉**kwargs可以当作容纳多个key和value的dictionary?



result:


? ? arg: 1?
? ? another keyword arg: myarg2: two?
? ? another keyword arg: myarg3: 3?


也可以用下面的形式:


def fun_var_args_call(arg1, arg2, arg3):?
? ? print "arg1:", arg1?
? ? print "arg2:", arg2?
? ? print "arg3:", arg3?
?
args = ["two", 3] #list?
?
fun_var_args_call(1, *args)


result:


? ? arg1: 1?
? ? arg2: two?
? ? arg3: 3?


? ? def fun_var_args_call(arg1, arg2, arg3):?
? ? ? ? print "arg1:", arg1?
? ? ? ? print "arg2:", arg2?
? ? ? ? print "arg3:", arg3?
? ? ?
? ? kwargs = {"arg3": 3, "arg2": "two"} # dictionary?
? ? ?
? ? fun_var_args_call(1, **kwargs)?


result:


? ? arg1: 1?
? ? arg2:"two"?
? ? arg3:3?


当所有传参为key=value形式将返回字典形式



下面关于Python的文章您也可能喜欢,不妨看看:


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Mybatis+Struts2的结合:实现用户.. 下一篇利用Java注解将常量类生成js文件..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: