函数中不定长参数的传递方式包括两种,包裹位置参数和包裹关键字参数。
包裹位置参数
不定长函数不是说没有形参,需要一个变量名*args承载接收的数据。
顾名思义,不定长,是说函数调用时,参数的数量是不确定的。有可能是一个,二个,三个,也有可能没有。
传进函数体的参数,会以元组的形式储存起来。
for循环遍历args的序列,和用下标一个个表示是一样的。
依次使用传入的参数时,可以for和while循环;要调用具体某个参数,可以按照具体位置使用下标调用。
包裹关键字参数
包裹关键字参数**kwargs和包裹位置参数不同,前面不是一个星号,而是两个星号,kw是keywords的缩写。
实际调用函数时,传入函数的数据类型为字典。在调用时,和关键字函数一样,需要把实参赋值给形参,虽然形参在定义不定长参数的函数时,没有明显写出。
在用for循环遍历kwargs序列时,只是把形参的名字提取了出来,也就是字典的key。
如果需要调用字典的值value,也就是实参,就像需要调用字典元素一样,通过key来获取。
PS:本文代码基于Windows 10,Python 3.10.4。
热门跟贴