首页技术文章正文

python不定长参数有啥用【Python培训】

更新时间:2022-09-06 来源:黑马程序员 浏览量:

IT培训班

  在Python中,通常在定义一个函数时,若希望函数能够处理的参数个数比当初定义的参数个数多,此时可以在函数中使用不定长参数。其基本的语法格式如下:

def 函数名([formal_args,] *args, **kwargs):
    "函数_文档字符串"
    函数体
    return 表达式

  在上述格式中,函数共有3个参数。其中,formal_args为形参(也就是前面所用的参数,如a,b),*args和**kwargs为不定长参数。当调用函数的时候,函数传入的参数个数会优先匹配formal_args参数的个数。如果传入的参数个数和formal_args参数的个数相同,不定长参数会返回空的元组或字典;如果传入参数的个数比formal_args参数的个数多,可以分为如下两种情况:

  (1)如果传入的参数没有指定名称,那么*args会以元组的形式存放这些多余的参数;

  (2)如果传入的参数指定了名称,如m=1,那么**kwargs会以字典的形式存放这些被命名的参数,如{m:1}

  为了大家更好地理解,先通过一个简单的案例进行演示,具体如例6-4所示。

  例6-4 不定长参数

def test(a, b, *args):
    print(a)
    print(b)
    print(args)
test(11, 22)

  在例6-4中,第1~4行代码定义了带有多个参数的test函数。其中,args为不定长参数。第5行代码调用test函数时只传入了两个参数11和22,说明11和22会按照从左向右的顺序依次匹配test函数定义时的参数a和b,而args参数因为没有接收到数据,所以其为一个空元祖。

  程序的运行结果如图6-4所示。

1662444700927_不定长参数.jpg

  图6-4 运行结果

分享到:
在线咨询 我要报名
和我们在线交谈!