Python学习之*args和**kwargs
来源:互联网 发布:阿里云虚拟机价 价格 编辑:程序博客网 时间:2024/05/16 07:43
本文和大家分享的主要是python中*args和**kwargs相关内容,一起来看看吧,希望对大家学习python有所帮助。
函数定义
在Python的函数定义中使用*args和**kwargs可传递可变参数。*args用作传递非命名键值可变长参数列表(位置参数),**kwargs用作传递键值可变长参数列表。
当你不确定你的函数里将要传递多少参数时你可以用*args.例如,它可以传递任意数量的参数,*args 示例:
deftest_var_args(farg, *args):
print "formal arg:", farg
for argin args:
print "another arg:", arg
test_var_args(1, "two", 3)
结果:
formalarg: 1anotherarg: twoanotherarg: 3
相似的,**kwargs允许你使用没有事先定义的参数名,**kwargs示例:
deftest_var_kwargs(farg, **kwargs):
print "formal arg:", farg
for keyin kwargs:
print "another keyword arg: %s: %s" % (key, kwargs[key])
test_var_kwargs(farg=1, myarg2="two", myarg3=3)
结果:
formalarg: 1anotherkeywordarg: myarg2: twoanotherkeywordarg: myarg3: 3
*args和**kwargs也可以混合使用,需要注意的是,*args需要放在**kwargs前面:
deftest_kwargs(first, *args, **kwargs):
print 'Required argument: ', first
for v in args:
print 'Optional argument (*args): ', v
for k, v in kwargs.items():
print 'Optional argument %s (*kwargs): %s' % (k, v)
test_kwargs(1, 2, 3, 4, k1=5, k2=6)
结果:
Requiredargument: 1
Optionalargument (*args): 2
Optionalargument (*args): 3
Optionalargument (*args): 4
Optionalargumentk2 (*kwargs): 6
Optionalargumentk1 (*kwargs): 5
函数调用
这种语法不仅在函数定义中可以使用,在调用函数是也会出现(相当于extract package的效果)
*args 示例:
deftest_var_args_call(arg1, arg2, arg3):
print "arg1:", arg1
print "arg2:", arg2
print "arg3:", arg3
args = ("two", 3)
test_var_args_call(1, *args)
结果:
arg1: 1arg2: twoarg3: 3
**kwargs示例:
deftest_var_args_call(arg1, arg2, arg3):
print "arg1:", arg1
print "arg2:", arg2
print "arg3:", arg3
kwargs = {"arg3": 3, "arg2": "two"}
test_var_args_call(1, **kwargs)
结果:
arg1: 1
arg2: two
arg3: 3
来源:标点符
函数定义
在Python的函数定义中使用*args和**kwargs可传递可变参数。*args用作传递非命名键值可变长参数列表(位置参数),**kwargs用作传递键值可变长参数列表。
当你不确定你的函数里将要传递多少参数时你可以用*args.例如,它可以传递任意数量的参数,*args 示例:
deftest_var_args(farg, *args):
print "formal arg:", farg
for argin args:
print "another arg:", arg
test_var_args(1, "two", 3)
结果:
formalarg: 1anotherarg: twoanotherarg: 3
相似的,**kwargs允许你使用没有事先定义的参数名,**kwargs示例:
deftest_var_kwargs(farg, **kwargs):
print "formal arg:", farg
for keyin kwargs:
print "another keyword arg: %s: %s" % (key, kwargs[key])
test_var_kwargs(farg=1, myarg2="two", myarg3=3)
结果:
formalarg: 1anotherkeywordarg: myarg2: twoanotherkeywordarg: myarg3: 3
*args和**kwargs也可以混合使用,需要注意的是,*args需要放在**kwargs前面:
deftest_kwargs(first, *args, **kwargs):
print 'Required argument: ', first
for v in args:
print 'Optional argument (*args): ', v
for k, v in kwargs.items():
print 'Optional argument %s (*kwargs): %s' % (k, v)
test_kwargs(1, 2, 3, 4, k1=5, k2=6)
结果:
Requiredargument: 1
Optionalargument (*args): 2
Optionalargument (*args): 3
Optionalargument (*args): 4
Optionalargumentk2 (*kwargs): 6
Optionalargumentk1 (*kwargs): 5
函数调用
这种语法不仅在函数定义中可以使用,在调用函数是也会出现(相当于extract package的效果)
*args 示例:
deftest_var_args_call(arg1, arg2, arg3):
print "arg1:", arg1
print "arg2:", arg2
print "arg3:", arg3
args = ("two", 3)
test_var_args_call(1, *args)
结果:
arg1: 1arg2: twoarg3: 3
**kwargs示例:
deftest_var_args_call(arg1, arg2, arg3):
print "arg1:", arg1
print "arg2:", arg2
print "arg3:", arg3
kwargs = {"arg3": 3, "arg2": "two"}
test_var_args_call(1, **kwargs)
结果:
arg1: 1
arg2: two
arg3: 3
来源:标点符
0 0
- python学习之*args 和 **kwargs
- Python学习之*args和**kwargs
- Python学习之路 —— *args 和**kwargs
- python可变参数之*args和*kwargs学习回顾
- Python *args 和 **kwargs
- python *args和**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- python中的*args和**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- Python中的*args和**kwargs
- Python: 什么是*args和**kwargs
- HDU 1243 反恐训练营【LCS(dp)】
- web.键盘.js键盘控制移动出现卡顿
- 交换排序
- Django学习之信号机制详解
- oracle存储过程学习经典[语法+实例+调用]
- Python学习之*args和**kwargs
- Graph
- JAVA LockCondition
- Emgucv图像处理二
- 两个类型为字符串的二进制数的加法
- 图像处理相关模块配置
- /etc/profile 修改致命令失效
- 后台产品经理,需要重视这4个能力
- 搜索练习13/poj/problem1426 Find The Multiple/bfs