Python 中的 *args 和 **kwargs 解析

Python 中传入函数的参数主要分为关键字参数位置参数非关键字参数),看这篇博客

*args 就是用于传递可变长度非关键字参数列表或元组;

**kwargs 就是用于传递可变长度关键字参数字典。

看以下这个例子,我们定义了函数 myFun,它接收三个参数 arg1、arg2 和 arg3:

def myFun(arg1, arg2, arg3):
	print("arg1:", arg1)
	print("arg2:", arg2)
	print("arg3:", arg3)

args = ["Geeks", "for", "Geeks"]
myFun(*args)

kwargs = {"arg1": "Geeks", "arg2": "for", "arg3": "Geeks"}
myFun(**kwargs)

输出为:

arg1: Geeks
arg2: for
arg3: Geeks
arg1: Geeks
arg2: for
arg3: Geeks

实际上就是先用列表 args 中的元素作为非关键字参数调用了一次函数,然后再用字典 kwargs 中的元素作为关键字参数调用一次函数。再看一个例子:

def myFun(*args, **kwargs):
	print("args: ", args)
	print("kwargs: ", kwargs)

myFun('geeks', 'for', 'geeks', first="Geeks", mid="for", last="Geeks")

输出为:

args: ('geeks', 'for', 'geeks')
kwargs: {'first': 'Geeks', 'mid': 'for', 'last': 'Geeks'}

函数 myFun 定义为先接收非关键字参数 args,再接收关键字参数 kwargs,所以在调用语句中,前三个字符串被看作是非关键字参数(args),后三个则被看作是关键字参数(kwargs)。注意关键字参数必须跟随在非关键字参数(位置参数)的后面

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值