Python可变参数详解:*args、**kwargs与命名关键字参数

追风的人
追风的人
发布时间:2026-10-13| 2人浏览过
原创

本文深入解析Python中的三种可变参数机制。首先介绍使用*号定义的普通可变参数,其接收任意数量位置参数并封装为元组;其次讲解**kw定义的关键字参数,允许传入任意键值对并封装为字典,常用于函数扩展;最后详解命名关键字参数,通过*分隔符强制要求特定参数名,确保调用时的参数完整性与安全性。

Python可变参数概述

可变参数

可变参数相对基础,在C/C++和Java等编程语言中均有类似概念,通常使用*号进行标识,例如


def testArg(*arg)

调用函数时可传入任意数量的元素(包括0个),在函数内部,这些参数会自动被处理为一个元组或列表对象。

关键字参数(**kwargs)

关键字参数

在Python中,关键字参数习惯上使用**kw形式表示,允许传入0到任意多个“键-值”对,函数内部将其视为字典结构。例如


def testArg(**kw)
def testArg(city,**kw)

调用方式如下所示


testArg(name='John',job='hoker')
testArg('beijin',name='john')

关键字参数适用于后续扩展函数功能,例如先定义必要的核心参数,随后选择性增加可选参数。

命名关键字参数

命名关键字参数

使用命名关键字参数可以限制传入的关键字参数范围,其定义方式如下:


def testArg(city,name,*,age,job)

正确的调用方式如下


testArg('beijin','wfp',age='25',job='hoker')
testArg('beijin','wfp',addr='shanghai',age='25',job='hoker')

错误的调用方式如下


testArg('beijin','wfp','25',job='hoker')

若未传入所有定义的关键字参数,系统将提示缺少参数。一旦定义了命名关键字参数,必须传入全部相关的关键字参数。

以上介绍了Python中三种可变参数的详细用法,希望能为读者提供帮助。如有疑问请留言,小编会及时回复。感谢大家对本站的支持!

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。