python中带*(单星号)的变量和**(双星号)的变量

老子叫甜甜 提交于 2019-11-27 08:31:57

一、*args的使用方法

  *args 用来将参数打包成tuple给函数体调用

二、**kwargs的使用方法

  **kwargs 打包关键字参数成dict给函数体调用



注意点:参数arg、*args、**kwargs三个参数的位置必须是一定的。必须是(arg,*args,**kwargs)这个顺序,否则程序会报错。

单星号变量实例(*)

单星号(*)的其它作用:

单星号变量不仅仅能够用在函数的参数传递中,实际上对一个普通变量使用单星号前缀,能够将这个变量拆分成单个元素。

#如果在变量前面使用单星号,实际上是对变量的一次拆解操作,将变量中单独的元素拆解出来,然后依次传入one()函数
而传入one()函数后,one()函数会将这些传入的单个元素保存成一个元组,这就是为什么我们 print(x[0])能够提取第一个元素的原因.
变量在传入到单星号变量函数中时,会将变量自动转化为元组,而元组是不能改变的。

另外,单星号是无法读取到字典中的值的,永远只会读取到字典中的键(key),如果想读取到字典中的值,需要使用双星号(**).

双星号(**)变量实例

双星号可以用来获得字典的值

需要注意的是:

使用这种方法将字典传入函数的时候,字典的键的命名要符合python变量的命名规则,通过上面的分析也不难看出,双星号会将字典首先转换成关键字参数的形式,就相当于使用字典中的键作为变量名,如果键不符合变量命名规则,则会抛出一个"TypeError"异常。

参考:
(1) https://www.qingsword.com/qing/python-12.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!