python中*和**的用法,python有++运算符吗
是不是对“* *”和“*”很了解,觉得这两个小运算符其实有那么多不同的用法?其实只要掌握了以下四个部分,就可以全部掌握了~
真正意义上有四类用法即:
算术运算、函数参数、函数变元、序列解包
算数运算
* *=功率
2 * 5102 * * 532函数形参
*args 和 **kwargs 主用于函数定义。
您可以向函数传递不确定数量的参数。不确定意味着:预先并不知道, 函数使用者会传递多少个参数给你, 所以在这个场景下使用这两个关键字。其实并不是必须写成 *args 和 **kwargs。*(星号)是必要的。你也可以写*ar和* * k,而写*args和**kwargs只是一个流行的命名约定。
"font-family: 微软雅黑, "Microsoft YaHei"; font-size: 14px;">python函数传递参数的方式有两种:
位置参数(positional argument)
关键词参数(keyword argument)
*args 与 **kwargs 的区别,都是 python 中的可变参数:
*args=任何多个无名参数,它本质是一个 tuple
**kwargs =关键字参数,它本质上是一个 dict
示例:
同使用 *args 和 **kwargs 时,必须 *args 参数列要在 **kwargs 之前。
>>>deffun(*args,**kwargs):...print('args=',args)...print('kwargs=',kwargs)...>>>fun(1,2,3,4,A='a',B='b',C='c',D='d')args=(1,2,3,4)kwargs={'A':'a','B':'b','C':'c','D':'d'}
*args
>>>deffun(name,*args):...print('你好:',name)...foriinargs:...print("你的宠物有:",i)...>>>fun("Geek","dog","cat")你好:Geek你的宠物有:dog你的宠物有:cat
**kwargs
>>>deffun(**kwargs):...forkey,valueinkwargs.items():...print("{0}喜欢{1}".format(key,value))...>>>fun(Geek="cat",cat="box")Geek喜欢catcat喜欢box
函数实参
如果函数的形参是定长参数,也可以使用 *args 和 **kwargs 调用函数,类似对元组和字典进行解引用:
>>>deffun(data1,data2,data3):...print("data1:",data1)...print("data2:",data2)...print("data3:",data3)...>>>args=("one",2,3)>>>fun(*args)data1:onedata2:2data3:3>>>kwargs={"data3":"one","data2":2,"data1":3}>>>fun(**kwargs)data1:3data2:2data3:one
序列解包
这里只列出一个例子,序列解包没有 **。
>>>a,b,*c=0,1,2,3>>>a0>>>b1>>>c[2,3]
大家掌握上面4种就可以了哦~收藏消化起来吧~如需了解更多python实用知识,点击进入PyThon学习网教学中心。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。