关于python:django和参数**kwargs

Django with argument **kwargs

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
What does *args and **kwargs mean?
Understanding kwargs in Python

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

1
2
3
4
5
6
7
8
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中有指针吗?谢谢


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

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

那么,args等于(1,2,3,4)Tuple。而kwargs等于{'a':20,'b':30,'c':40}a dictionary

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


这是一个python参数语法:

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