为了账号安全,请及时绑定邮箱和手机立即绑定

定义类的时候,为了达到可以接受任意关键字参数的目的,要用**kw,可是为什么呢?

*args表示任何多个无名参数,它是一个tuple;**kwargs表示关键字参数,它是一个dict。并且同时使用*args和**kwargs时,必须*args参数列要在**kwargs前。没有搞明白这两个参数,百度了一下,不过还是不明白为什么要用字典类型的**kw来做参数呢?

正在回答

3 回答

在实际中哪些地方可能会用到啊

0 回复 有任何疑惑可以回复我~
def f(a, b, *args, *kwargs):
    pass
f(1, 2, 3, 4, x=5, y=6)
# 此时a=1, b=2, args=(3, 4), kwargs={"x":5, "y":6}
3 回复 有任何疑惑可以回复我~

看了其他问答,自问自答一下:“就是因为在创建实例的时候,未知的属性既要输入属性名又要为这个未知属性赋值,所以是要k=v的格式,于是就是**kw而不是*agrs了。”

3 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
python进阶
  • 参与学习       255665    人
  • 解答问题       2949    个

学习函数式、模块和面向对象编程,掌握Python高级程序设计

进入课程

定义类的时候,为了达到可以接受任意关键字参数的目的,要用**kw,可是为什么呢?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信