知行编程网知行编程网  2022-12-26 22:30 知行编程网 隐藏边栏  1 
文章评分 0 次,平均分 0.0
导语: 本文主要介绍了关于如何使用python操作符**与*?有什么区别?的相关知识,希望可以帮到处于编程学习途中的小伙伴


大家是不是了解过


“**”和“*”的内容很多。我认为这两个小运算符有很多不同的用法。其实只要掌握以下四个部分,就可以全部掌握啦~




真正意义上有四类用法




即:



算数运算,函数形参,函数实参,序列解包




算数运算


** = 乘方
>>> 2 * 510>>> 2 ** 532




函数形参




*args 和 **kwargs 主用于函数定义。



你可以将无限数量的参数传递给函数。不确定的意思:




预先并不知道

, 函数使用者会传递多少个参数给你, 所以在这个场景下使用这两个关键字。其实并不是必须写成 *args 和 **kwargs。



*(星号)是必需的。你也可以写成 *ar 和 **k。而写 *args 和 **kwargs 只是一种流行的命名约定。




python函数传递参数的方式有两种:




  • 位置参数(

    positional argument)



  • 关键词参数(

    keyword argument)




*args 与 **kwargs 的区别,都是 python 中的可变参数:



  • *args=任何多个无名参数,它本质是一个 tuple


  • **kwargs =关键字参数,它本质上是一个 dict




示例









同使用

*args 和 **kwargs 时,必须 *args 参数列要在 **kwargs 之前。

>>> def fun(*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


>>> def fun(name, *args):...     print('你好:', name)...     for i in args:...         print("你的宠物有:", i)... >>> fun("Geek", "dog", "cat")你好: Geek你的宠物有: dog你的宠物有: cat




**kwargs


>>> def fun(**kwargs):...     for key, value in kwargs.items():...         print("{0} 喜欢 {1}".format(key, value))... >>> fun(Geek="cat", cat="box")Geek 喜欢 catcat 喜欢 box




函数实参




如果函数的形参是定长参数,也可以使用

*args 和 **kwargs 调用函数,类似对元组和字典进行解引用:

>>> def fun(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  >>> a  0  >>> b  1  >>> c  [2, 3]


大家掌握上面4种就可以了哦~收藏消化起来吧~如需了解更多python实用知识,点击进入

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写
扫一扫二维码分享