Python中*args与**kwargs的区别与用法详解

远山来客
远山来客
发布时间:2026-10-14| 5人浏览过
原创

本文详解Python中*args与**kwargs的区别。*args用于接收未知数量的位置参数,以元组形式存储;**kwargs用于接收未知数量的关键字参数,以字典形式存储。通过具体代码示例展示了两者在函数定义中的应用及将**kwargs转换为字典的方法,帮助开发者掌握灵活传参技巧。

*args与**kwargs的基本概念

许多Python初学者在调用函数时常遇到困惑,面对复杂的函数定义不知如何下手。

这通常是因为对参数列表中的特殊语法缺乏理解,尤其是初学者常对*args和**kwargs的具体用途感到疑惑。

一旦掌握这两个概念,你将能够更自如地调用各类Python内置及第三方函数。

*args处理位置参数

*args的主要用途是处理未知数量的位置参数,且无需关心具体参数名。


def func_arg(farg, *args):
    print("formal arg:", farg)
    for arg in args:
        print("another arg:", arg)
func_arg(1,"youzan",'dba','四块五的妞')
print("-----------------------")

运行上述代码后,终端输出结果如下:

#formal arg: 1 # another arg: youzan # another arg: dba # another arg: 四块五的妞 # -----------------------

**kwargs处理关键字参数

**kwargs则用于处理未知数量的关键字参数,此时参数以键值对形式存在,类似于字典结构。


def func_kwargs(farg, **kwargs):
    print("formal arg:", farg)
    for key in kwargs:
        print("keyword arg: %s: %s" % (key, kwargs[key]))
func_kwargs(1 ,id=1, name='youzan', city='hangzhou',age ='20',四块五的妞是 = '来日方长的')
print('--------------------')

执行该函数后的输出结果如下:

# formal arg: 1 # keyword arg: id: 1 # keyword arg: name: youzan # keyword arg: city: hangzhou # keyword arg: age: 20 # keyword arg: 四块五的妞是: 来日方长的

利用**kwargs转换字典

利用**kwargs的特性,可以直接将传入的关键字参数转换为字典对象。


def kw_dict(**kwargs):
    return kwargs
print(kw_dict(a=1,b=2,c=3))

该操作的输出结果如下:

# --------------------

# {'a': 1, 'b': 2, 'c': 3}

以上即为Python中*args与**kwargs区别作用的详细解析,更多相关技术内容欢迎持续关注本站其他文章。

相关标签:

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

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 算法库。