python函数定义中形参特殊用法,形参前的星号是什么意思?
发布于 作者:苏南大叔 来源:程序如此灵动~

在使用python
的各种函数的时候,大家一定会发现,函数的参数传递有好多种方式。那么,为什么有这么多种参数传递的方式呢?这就要从python
的函数定义中的参数定义来展开描述。

大家好,这里是苏南大叔的程序如此灵动博客,记录苏南大叔的代码编程经验所学所想。本文描述python
中形参的几种用法,并且重点描述其中的形参前面使用了星号的用法,其中在形参前使用一个星号和使用两个星号有什么区别呢?本文测试环境:win10
,python@3.7.11
。
导读内容
本文涉及了元组tuple
和字典dict
的用法。参考文章:
这里就复习一下tuple
和dict
的定义方法:
输出内容:
还涉及了python
的两个星号的用法,参考文章:
这里还复习一下args
和kwargs
的用法:
输出内容:
形参前单星号,强转为元组
使用一个星号装饰形参,来把剩余的参数,转换成了一个元组tuple
。
这里如果没有显式的传递这个必出的d
参数的话,就会获得错误提示信息。

形参前双星号,强转为字典
相比较单星号转化为元组,双星号转化为字典就没有那么顺利,显然有很多的限制。
错误的使用方式
如果把上面例子中的单星号换成双星号,就得到了一个错误提示。
如果改成就传两个参数的话,不报错,但是这个加双星号被强转字典的参数也没有啥用了。【看来**c就是var-keyword argument】
正确的使用方式

重点内容,python函数定义
从左到右推荐参数顺序为:位置参数、默认参数、单星号参数、关键字传参、双星号参数。
这个输出为:
相关文章
看来下面的这个文章需要更新了:
总结
结论是:实际效果上,单星号的位置变成了元组,双星号的位置变成了字典。
这个函数的参数问题,看起来比较简单好理解。但是实际上的运算过程中,还存在着很多不知道的坑。


