当前位置: 首页 > 图灵资讯 > 行业资讯> Python可变参数函数用法详解

Python可变参数函数用法详解

发布时间:2025-10-10 17:48:30

许多编程语言允许定义可变参数的数量,以便在调用函数时传输任何多个参数。Python 当然也不例外,Python 允许在形参前添加一个星号(*),这意味着该参数可以接收多个参数值,多个参数值可以作为元组传输。

以下程序定义了一个可变的形参数函数:

#定义了支持参数收集的函数
deftest(a,*books):
print(books)
#books被用作元组
forbinbooks:
print(b)
#输出整数变量a的值
print(a)
#调用test()函数
test(5,"php中文网","Python教程")

操作上述程序,将看到以下操作结果:

('php中文网','Python教程')
php中文网
Python教程
5

从上述操作结果可以看出,当调用时 test() 函数时,books 参数可以作为参数值传入多个字符串。从 test() 根据函数体代码,参数收集的本质是一个元组: Python 会将传给 books 参数的多个值收集成一个元组。

Python 允许个数可变的形参可以在形参列表的任何位置(不要求是形参列表的最后一个参数),但是 Python 支持“普通”参数收集的形参最多需要一个函数。例如,以下程序:

#定义了支持参数收集的函数
deftest(*books,num):
print(books)
#books被用作元组
forbinbooks:
print(b)
print(num)
#调用test()函数
test("php中文网","Python教程",num=20)

正如上述程序所看到的,test() 函数的第一个参数是可变形参数。由于该参数可以接收不同数量的参数值,因此如果需要将参数值传输到以下参数,则必须使用关键字参数,否则该程序将传输的多个值视为传输 books 参数的。

Python 此时还可以收集关键字参数, Python 这个关键字参数将被收集成字典。为了让它变成字典。 Python 为了收集关键字参数,需要在参数前添加两个星号。在这种情况下,一个函数可以包含一个支持“普通”参数和一个支持关键字参数收集的参数。例如,以下代码:

#定义了支持参数收集的函数
deftest(x,y,z=3,*books,**scores):
print(x,y,z)
print(books)
print(scores)
test(1,2,3,"php中文网","Python教程",语文=89,数学=94)

上述程序正在调用中 test() 函数时,前面的 1、2、3 它将传递给普通参数 x、y、z;接下来的两个字符串将由 books 参数收集成元组;最后两个关键字参数将被收集成字典。操作上述代码,您将看到以下输出结果:

123
('php中文网','Python教程')
{'语文':89,'数学':94}

对上述定义方法的定义 test() 函数,参数 z 默认值几乎不起作用。例如,以下方式调用 test() 函数:

test(1,2,"php中文网","Python教程",语文=89,数学=94)

如果希望让 z 如果参数的默认值发挥作用,则只需要输入两个位置参数。例如,调用代码如下:

test(1,2,语文=89,数学=94)

相关文章

Python可变参数函数用法详解

Python可变参数函数用法详解

2025-10-10
Python __call__方法(详解版)

Python __call__方法(详解版)

2025-10-10
Python之字符编码相关介绍

Python之字符编码相关介绍

2025-10-10
Python queue双端队列模块及用法

Python queue双端队列模块及用法

2025-10-10
Python之列表的增删改查

Python之列表的增删改查

2025-10-10
Python itertools模块:生成迭代器(实例分析)

Python itertools模块:生成迭代器(实例分析)

2025-10-10