一、什么是*args和 **kwargs?
1.1 为什么会有* args 和 ** kwargs?
允许函数接受不定数量的位置参数和关键字参数,使函数更加灵活和通用。
增加了函数的灵活性,使其能够处理不同数量和类型的参数,而不需要在函数定义时明确定义每个参数。
1.2 *args和**kwargs的用途是什么?
*args 处理参数数量不确定的情况,使函数更加灵活。
**kwargs 允许函数接收不定数量的关键字参数。
常用于处理哪些参数名称和数量不确定的情况,使函数更加通用。
1.3 *args是什么?
位置参数
args是 argument
args 有两部分构成为—— * 和args。这里的重点是。
所以为了讲清楚*args,我们要追根溯源——理解*的作用。
这里敲黑板,重点来了,这也是很多博客写的没有写到的地方:∗ *∗的作用,有2个—— 打包参数(pack)和拆分参数(unpack)!
————————————————
版权声明:本文为CSDN博主「千千Sama」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/lllxxq141592654/article/details/81288741
args 参数列要在* kwargs 前面 【因为位置参数在关键字参数的前面。】
- args 和 ** args 主要用于函数定义,你可以将不定数量的参数传递给一个函数。
这里不定的意思是: 预先并不知道,函数使用者会传递多少个参数给你,所在在这个场景下使用这两个关键字。 * args 是用来发送一个 非键值 的可变数量的参数列表给一个函数。
- args表示任何多个无名参数,他本质上是一个tuple
所以若 *args 不是在最后,则需要在参数传入时,明确定义 *args后面的变量参数名
1.4 **kwargs是什么?
kwargs 是 keyword arguments的缩写。
在函数调用时,除了传递位置参数外,还可以传递以关键字(参数名)形式传递的参数。
** kwargs 表示关键字参数, 它本质上是一个 dict
键值对,key-value
函数里处理带名字的参数
1.5 *args与**kwargs的区别是什么?
*args 用于处理不定数量的位置参数,而 **kwargs 用于处理不定数量的关键字参数。它们都增加了函数的灵活性,使函数能够适应各种输入。选择使用哪个取决于函数的需求和设计。
参数类型和用途:
*args用于处理不定数量的位置参数
**kwargs 用于处理不定数量的关键字参数
参数传递方式
*args 位置参数必须按照它们在函数定义中的顺序传递给函数。
**kwargs 关键字参数可以按任意顺序传递给函数,因为它们与参数名称关联,这使得函数调用更加灵活。因为可以通过参数名来指定要传递的值。
参数捕获方式
*args 将位置参数捕获到一个元组中,可以在函数内部通过索引来房温各个参数的值
** kwargs 将关键字参数捕获到一个字典中,可以在函数内部通过参数名来访问各个参数的值。
163

被折叠的 条评论
为什么被折叠?



