python函数 *args和**kwargs的含义和用法

python函数

Python中有两种参数,位置参数和关键词参数,关键词参数只需要用 keyword = somekey 的方法即可传参,而位置参数只能由参数位置决定。

*开头的参数接受任意数量的位置参数

* 的作用将tuple或者list中的元素进行unpack,分开传入,作为多个参数**

rest是一个元组,包含了除1以外的所有传递过来的位置参数

def avg(first,*rest):
    #1
    print(first)
    #(2, 3, 4)
    print(rest)
    #2 3 4
    print(*rest)

avg(1,2,3,4)

**开头的参数接受任意数量的关键字参数

** 的作用是把dict类型的数据作为参数传入

def get_name(id,**rest):
    # 1
    print(id)
    # {'first_name': 'tom', 'last_name': 'jack'}
    print(rest)

get_name(1,first_name='tom',last_name='jack')

总结

一般*args 在 ** kwargs 前面,
*开头的参数只能作为最后一个位置参数出现,
以**打头的参数只能作为最后一个参数出现。因此在
*打头的参数后仍然可以有其他的参数出现,只是出现在 * args之后的参数只能作为关键字参数使用。

def b(x,*args,y,**args):
	pass
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章