Python中*args 和**kwargs的用法
2015-09-20 23:09
661 查看
from:http://blog.csdn.net/chenjinyu_tang/article/details/8136841
好久没有学习python了,应为工作的需要,再次拾起python,唤起记忆。
当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。
还是直接来代码吧,废话少说
[python] view plaincopyprint?
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:
[python] view plaincopyprint?
arg: 1
another arg: two
another arg: 3
**kwargs:
[python] view plaincopyprint?
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:
[python] view plaincopyprint?
arg: 1
another keyword arg: myarg2: two
another keyword arg: myarg3: 3
也可以用下面的形式:
[python] view plaincopyprint?
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:
[python] view plaincopyprint?
arg1: 1
arg2: two
arg3: 3
[python] view plaincopyprint?
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:
[python] view plaincopyprint?
arg1: 1
arg2:"two"
arg3:3
好久没有学习python了,应为工作的需要,再次拾起python,唤起记忆。
当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwargs有key值。
还是直接来代码吧,废话少说
[python] view plaincopyprint?
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:
[python] view plaincopyprint?
arg: 1
another arg: two
another arg: 3
**kwargs:
[python] view plaincopyprint?
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:
[python] view plaincopyprint?
arg: 1
another keyword arg: myarg2: two
another keyword arg: myarg3: 3
也可以用下面的形式:
[python] view plaincopyprint?
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:
[python] view plaincopyprint?
arg1: 1
arg2: two
arg3: 3
[python] view plaincopyprint?
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:
[python] view plaincopyprint?
arg1: 1
arg2:"two"
arg3:3
相关文章推荐
- Python——类属性/实例属性
- 杂记&of python
- 我的python学习笔记(1)
- 创建视图和副本
- 使用Python解析macro.ini
- 新手学NumPy
- Python 错误和异常小结[转]
- Python 包管理工具
- 零基础学python-18.7 为什么要使用lambda表达式
- 零基础学python-18.7 为什么要使用lambda表达式
- Python基本语法[二],python入门到精通[四]
- 零基础学python-18.6 lambda表达式快速入门
- 零基础学python-18.6 lambda表达式快速入门
- python字符串
- python源码剖析
- python中元组(tuple)的用法
- python中列表的常用方法
- multiprocessing module in python(转)
- ubuntu12.04 set python2.7 opencv2.4.9
- Python+OpenCV学习(18)---双目视觉深度信息恢复