为什么要使用*arge , **kwargs传参数

为什么要使用*arge , **kwargs传参数

为什么要使用*arge , **kwargs传参数,不能直接使用a,b传参吗?

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕美 2019-07-21 10:58:16

同学,你好。直接传a,b也是可以的。

*args 和 **kwargs :可以将不定数量的参数传递给一个函数。不定的意思是:预先并不知道, 函数使用者会传递多少个参数。

*args表示任何多个无名参数,它本质是一个tuple; **kwargs表示关键字参数,它本质上是一个dict; 

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

fun(1,2,3,4,A='a',B='b',C='c',D='d')

args= (1, 2, 3, 4)
kwargs= {'A': 'a', 'B': 'b', 'C': 'c', 'D': 'd'}

如果我的回答解决了您的疑惑,请采纳!祝学习愉快~~~~ 

  • 可以这样理解吗?如果只用a,b的话,后面如果要加更多的c,d,f等等的话就要一个个在def wrapper上写上去,而如果用了*args 和 **kwargs就可以不用那么麻烦了,直接在add上加c,d,f等等就可以直接计算了 说得可能有点绕,不过我测试过是这样的,不知道可不可以这样理解?
    2019-07-31 22:14:09
  • 同学,你好。可以这么理解的,但同学要注意*args将接收到的参数打包为tuple给函数调用; **kwargs为关键字参数,将参数打包为dict给函数调用。
    2019-08-01 09:45:18
  • 好的好的!
    2019-08-01 20:48:08
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
1.Python零基础入门
  • 参与学习           人
  • 提交作业       2727    份
  • 解答问题       8160    个

想要进入Python Web、爬虫、人工智能等高薪领域,你需要掌握本阶段的Python基础知识,课程安排带你高效学习轻松入门,学完你也能听得懂Python工程师的行业梗。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师