登录
首页 >  文章 >  python教程

Python可变参数两种传参方式详解

时间:2026-02-22 23:46:50 454浏览 收藏

Python通过*args和**kwargs两种机制实现灵活的可变参数传递:*args将任意数量的位置参数自动打包为元组,用于处理不确定个数的普通输入;**kwargs则将任意数量的关键字参数收集为字典,便于接收命名式配置项;二者可协同使用,配合固定参数构成“普通参数 → *args → **kwargs”的标准顺序,显著提升函数的通用性与适应性——无论面对简单求和、动态信息展示,还是复杂接口设计,这一组合都是构建健壮、可扩展Python函数的核心利器。

python可变参数的两种传递方式

在Python中,可变参数允许函数接收任意数量的参数。实现这一功能主要有两种方式:*args 和 **kwargs。它们让函数更加灵活,能处理不同数量和类型的输入。

*args:传递任意数量的位置参数

使用一个星号 *args 可以接收任意多个位置参数,这些参数在函数内部会被打包成一个元组。

说明:args 是约定俗成的名称,真正起作用的是星号 *。你可以写成 *data 或 *values,但通常使用 *args。

示例:

def sum_all(*args):
    total = 0
    for num in args:
        total += num
    return total
<p>print(sum_all(1, 2, 3))       # 输出: 6
print(sum_all(10, 20))         # 输出: 30
print(sum_all())               # 输出: 0
</p>

调用时传入的所有位置参数都会被收集到 args 元组中,可以在函数内遍历或操作。

**kwargs:传递任意数量的关键字参数

使用两个星号 **kwargs 可以接收任意多个关键字参数,这些参数在函数内部会被打包成一个字典。

说明:kwargs 同样是习惯命名,本质是 ** 符号。也可以写作 **params 或 **options。

示例:

def show_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")
<p>show_info(name="Alice", age=25, city="Beijing")</p><h1>输出:</h1><h1>name: Alice</h1><h1>age: 25</h1><h1>city: Beijing</h1><p></p>

所有传入的 keyword=value 形式的参数都会被存入 kwargs 字典,键为参数名,值为对应值。

这两种方式可以同时出现在一个函数中,一般顺序是:普通参数 → *args → **kwargs

综合示例:

def example(a, b, *args, **kwargs):
    print("固定参数:", a, b)
    print("可变位置参数:", args)
    print("可变关键字参数:", kwargs)
<p>example(1, 2, 3, 4, name="Bob", age=30)
</p>

基本上就这些。*args 处理多余的位置参数,**kwargs 处理额外的关键字参数,两者结合使函数接口更强大、更通用。

今天带大家了解了的相关知识,希望对你有所帮助;关于文章的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

资料下载
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>