【问题标题】:Django with argument **kwargs [duplicate]带有参数**kwargs的Django [重复]
【发布时间】:2012-04-12 07:09:07
【问题描述】:

可能重复:
What does *args and **kwargs mean?
Understanding kwargs in Python

我在 Django 框架中发现了一些奇怪的语法,例如:

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()

    def save(self, *args, **kwargs):
        do_something()
        super(Blog, self).save(*args, **kwargs) # Call the "real" save() method.
        do_something_else()

我的问题是:参数名称中的星号是什么意思。 C中有指针吗? 谢谢

【问题讨论】:

标签: python django syntax


【解决方案1】:

如果您使用这些参数调用 save:

save(1,2,3,4,a=20,b=30,c=40)

那么args将等于(1,2,3,4),即Tuplekwargs 将等于{'a':20,'b':30,'c':40} 一个dictionary

这些 * 和 ** 符号用于在 Python 中收集参数,它们不是指针。

【讨论】:

    【解决方案2】:

    这是一个 Python 参数语法:

    • *args - 未命名参数列表
    • **kwargs - 字典(命名参数)

    【讨论】:

      猜你喜欢
      • 2016-02-16
      • 1970-01-01
      • 2011-08-20
      • 1970-01-01
      • 1970-01-01
      • 2021-10-26
      • 2017-04-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多