码迷,mamicode.com
首页 > 编程语言 > 详细

python-8:函数之二 *args, **kwargs

时间:2018-09-23 16:38:01      阅读:128      评论:0      收藏:0      [点我收藏+]

标签:映射   test   收集   键值对   python   war   结果   print   ...   

#形参*args:收集参数
# 功能1:收集除位置参数外的所有参数,以元组形式返回;
# 功能2:实参以‘*‘和‘可迭代类型‘一起的形式,如*[],*(),*{},*"...",传入时,
# *args,星号‘*‘的作用,用来解析‘可迭代类型‘中元素,放入元组,实质是循环取得‘可迭代类型‘中每个元素,存入元组
#注意,*{},为字典时,得到的是key值
def test1(x,y,*args,**kwargs):# x,y,位置参数,*args,收集参数,收集除位置参数外的所有参数,以元组形式返回
print(‘x=‘,x)
print(‘args=‘,args)
print(‘len=‘,len(args))
print(‘kwargs=‘,kwargs)
print(‘kw_len=‘,len(kwargs))
test1(2,1,[3,4,5],(7,8),9,10,*‘abcd‘,*[‘ag‘,123,‘b‘],*(‘c‘,‘d‘),*{11,22,33},*{‘key1‘:‘v1‘},m=12,**{‘k‘:‘v‘,‘k1‘:‘v1‘})
#运行结果:
# x= 2
# args= ([3, 4, 5], (7, 8), 9, 10, ‘a‘, ‘b‘, ‘c‘, ‘d‘, ‘ag‘, 123, ‘b‘, ‘c‘, ‘d‘, 33, 11, 22, ‘key1‘)
# len= 17
# kwargs= {‘m‘: 12, ‘k‘: ‘v‘, ‘k1‘: ‘v1‘}
# kw_len= 3

***********************************************************************************************************************
#形参**kwargs:仅收集映射,如:关键字参数(x=3,y=5),实质也是键值对形式;**字典参数(**{})
#以字典形式返回
def test2(m,n,**kwargs):
print(‘m=‘,m)
print(‘kwargs=‘,kwargs)
print(‘len=‘,len(kwargs))
test2(1,2,x=3,y=5,**{‘k‘:‘v‘,‘k2‘:5})
# 运行结果:
# m= 1
# kwargs= {‘x‘: 3, ‘y‘: 5, ‘k‘: ‘v‘, ‘k2‘: 5}
# len= 4

python-8:函数之二 *args, **kwargs

标签:映射   test   收集   键值对   python   war   结果   print   ...   

原文地址:https://www.cnblogs.com/Zhouzg-2018/p/9692795.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!