*args,**kwargs的用法


最近汪汪给我发了一些python常见面试的问题,其中一个就是*args,**kwargs的区别。所以今天下午就准备好好搞清这两个参数

*args,**kwargs的用途

我们经常在很多参数可变的函数、方法中,比如np.arange(),发现*args,**kwargs的身影。没错,如果要定义的函数传入的参数数量、类型不是固定的,那么就可以用它们作为参数

*args传非键值对的可变参数列表

*args 可以用来传非键值对的可变参数列表,这么说有点抽象,直接上demo:

//定义函数
def f(*args):
    print(args)
    
f()
f('aaaaa')
f([1,2,3,3])
f(['a','c'])
f((1,2,(2,3)))
f(234,222,'a')
f({'s':1,11:222})   //字典也是用*args

结果:
在这里插入图片描述

**kwargs传键值对可变参数列表

**kwargs 可以用来传键值对可变参数列表,刚开始,我也是走入了一个误区,以为传入的参数是像字典这类的数据类型,但是,结果表明,会报错–》TypeError: f2() takes 0
positional arguments but 1 was given
在这里插入图片描述
ok,那么正确的用法是啥呢?

//定义函数
def f2(**kwargs):
    print(kwargs)
f2()
f2(nam='aa',age=12)

在这里插入图片描述

*args+**kwargs

如果想让定义的函数既能传非键值对的可变参数列表,又能传键值对的可变参数列表,那就

//定义函数
def f2(*args,**kwargs):
    print(args,kwargs)

今天的显摆就到这里啦~
以上部分参考度娘+csdn博客,部分是自己试出来的,有不对的地方,请多指教 :)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值