本文主要是介绍Python *arg **kwarg,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
函数定义时传*arg /**kwarg(收集参数)
- 函数传入*arg
def print_params(title, *arg):print titleprint arg
测试一下:
>>> print_params('params', 1, 2)
params
(1, 2)
Explain:(1,2)是元组的形式;函数的位置参数为*arg,说明函数接受的是一个元组。
- 函数传入**kwarg
def print_params(**kwarg):print kwarg
测试一下:
>>> print_params(x=1, y=2)
{'y': 2, 'x': 1}
Explain:{‘y’: 2, ‘x’: 1}是字典的形式,因此函数的关键字参数为**kwarg,说明函数接收的是一个字典
调用函数时传入*arg/**kwarg(分割参数)
- 调用函数时,传参为*arg
>>> def add(x, y): return x + y
...
>>> params = (1, 2)
>>> add(*params)
3
Explain:*params作为参数传递给add(),并且获得了1+2=3的结果,说明*params实则是将原来的元组中的元素(1, 2)取出来,传递给了add,相当于是add(1, 2)。(上例中params为元组,若为列表与上同)
- 调用函数时,传参为**kwarg
>>> def hello_world(greeting='Hello', name='world'): print '%s, %s' % (greeting, name)
...
>>> params = {'name': 'Lily', 'greeting': 'Well met'}
>>> hello_world(**params)
Well met, Lily
Explain:与传参为*arg时相同,相当于是hello_world(name=’Lily’, greeting=’Well met’)
优点:在调用函数的时候,简化了参数传递的过程。
这篇关于Python *arg **kwarg的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!