很多编程语言都允许定义个数可变的参数,这样可以在调用函数时传入任意多个参数。Python当然也不例外,Python 允许在形参前面添加一个星号(*),这样就意味着该参数可接收多个参数值,多个参数值被当成元组传入。下面程序定义了一个形参个数可变的函数。
# !/usr/bin/env python# -*- coding: utf-8 -*-# @Time : 2024/01# @Author : Laopi#定义了支持参数收集的函数def test(name,*course):print(course)#course被当成元组处理for c in course:print(c)#输出字符串name的值print(name)#调用test()函数test("测试老痞","语文","数学","外语","计算机","美术")
运行上面的程序,将看到下面的运行结果
从上面的运行结果可以看出,当调用test()函数时,course 参数可以传入多个字符串作为参数值。从test()的函数体代码来看,参数收集的本质就是一个元组:Python 会将传给 course 参数的多个值收集成一个元组。
Python 允许个数可变的形参可以处于形参列表的任意位置(不要求是形参列表的最后一个参数),但Python要求一个函数最多只能带一个支持“普通”参数收集的形参。例如如下程序。
def t