python函数参数中*args,**kwargs的使用和意义

*args*kwargspython中经常使用的函数参数,代表着函数的参数数目是可变的。

为讲解清楚两个参数的意义,以下一段代码为例做讲解:

def fun(*args,**kwargs):
        print "args = ",args
        print "kwargs = ",kwargs

(1)fun(1,2,3,4)


输出结果:

args= (1, 2, 3, 4)

kwargs= {}


说明:在fun函数使用的时候,1,2,3,4全部传给了args,是一个元祖/tuple(可类似的认为是C语言中的constchar[]),kwargs中没有任何元素,故为空。


(2)fun(a=1,b=2,c=3,d=4)


输出结果:

args= ()

kwargs= {'a': 1, 'c': 3, 'b': 2, 'd': 4}

说明:此时,kwargs中的元素组成了一个字典(dict)args没有任何元素,故为空。


(3)fun(3,2,1,a=4,b=5,ss=123)

输出结果:

args= (3, 2, 1)

kwargs= {'a': 4, 'ss': 123, 'b': 5}

说明:跟(1)(2)一样。


(4)fun(4,5,1,2,'hello',a='qwe',b='asd',c='zxc')

输出结果:

args= (4, 5, 1, 2, 'hello')

kwargs= {'a': 'qwe', 'c': 'zxc', 'b': 'asd'}

说明:

args可以存字符串,数字。


注意:在函数的参数同时有*args**kwargs时,args的使用必须要在kwargs的前面,否则编译器会报错。


关于元祖(tuple)和字典(dict),是python中的数据格式,可参考廖雪峰的相关教程进行了解。

Tuple:https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/001386819318453af120e8751ea4d2696d8a1ffa5ffdfd7000

dict

https://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868193482529754158abf734c00bba97c87f89a263b000


  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值