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

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

本文详解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 相关产品和应用

全部下载

专题列表