Python中的*args和**kwargs

概述

一句话概括,*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。二者都是函数额外的参数。

例子

def test(a, b, *args, **kwargs):
    print ('args = ', args)
    print ('kwargs = ', kwargs)
    print ('---------------------------------------')
 
if __name__ == '__main__':
    test(1, 2, 3, 4)
    # args =  (3, 4)
    # kwargs =  {}
    # ---------------------------------------
    ## 由于test()函数有两个命名参数,所以剩下的“3,4”就放在了*args。

    test(a=1, b=2, c=3)
    # args =  ()
    # kwargs =  {'c': 3}
    # ---------------------------------------
    ## a和b都是命名的参数,所以即使赋值的形式是key=value形式,但额外的参数只有“c=3”,就给了**kwargs。

    test(1, 2, 3, 4, c=3)
    # args =  (3, 4)
    # kwargs =  {'c': 3}
    # ---------------------------------------
    ## “1,2”分别给了a和b,还剩下“3,4”就给了*args,“c=3”给了**kwargs。

    test('a', 1, None, c='3')
    # args =  (None,)
    # kwargs =  {'c': '3'}
    # ---------------------------------------
    ## “'a'和1”分别给了a和b,剩下的“None”给了*args,“c=30”给了**kwargs。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值