python中*args 和 **kwargs区别

1 *args 和 **kwargs 定义。

你可以将不定数量的参数传递给一个函数。不定的意思是:预先并不知道, 函数使用者会传递多少个参数给你, 所以在这个场景下使用这两个关键字。其实并不是必须写成 *args 和 **kwargs。 *(星号) 才是必须的. 你也可以写成 *ar 和 k 。而写成 *args 和kwargs 只是一个通俗的命名约定。

2 python函数传递参数的方式有两种:

位置参数(positional argument)
关键词参数(keyword argument)

3 *args 与 **kwargs 的区别,两者都是 python 中的可变参数:

*args 表示任何多个无名参数,它本质是一个 tuple(元组)
**kwargs 表示关键字参数,它本质上是一个 dict(字典)
如果同时使用 *args 和 **kwargs 时,必须 *args 参数列要在 **kwargs 之前。

4 使用说明

4.1 *args

4.1.1 样例一

>>> def fun(*args):
...     print('args=',args)
...     name = args[0]
...     sex = args[1]
...     mobile = args[2]
...     print('name=',name)
...     print('sex=',sex)
...     print('mobile=',mobile)
...
>>> fun('CleverCode',1,'18612341234','clevercode@qq.com')
('args=', ('CleverCode', 1, '18612341234', 'clevercode@qq.com'))
('name=', 'CleverCode')
('sex=', 1)
('mobile=', '18612341234')
>>>

可以看到,我们传递了参数clevercode@qq.com,在args[3]中,但是我们没有使用。

4.1.2 样例二

如果把一个元组data变量直接,传递给fun函数,我们可以看到,它只能被当做args[0],也就是说在fun中args[0]=(‘CleverCode’,1,‘1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值