Python中*args与**kwargs的区别与用法详解
本文详解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区别作用的详细解析,更多相关技术内容欢迎持续关注本站其他文章。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









