2012-03-28 58 views
-1

可能重复:
What does *args and **kwargs mean?
Understanding kwargs in Python的Django与参数** kwargs

我发现像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() 

我问题是:星星是以什么名义表示的gument。 C中有指针吗? 感谢

+2

读到过:HTTP:// WWW .saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/ – Blender 2012-03-28 16:27:48

+0

也读过类似的问题,例如http://stackoverflow.com/questions/3394835/args-and-kwargs – 2012-03-28 16:32:43

+0

另外:http://stackoverflow.com/questions/287085/what-does-args-and-kwargs-mean – alan 2012-03-28 16:32:47

回答

0

如果调用保存使用这些参数:

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中收集参数,它们不是指针。

+0

非常感谢您的回答! – nam 2012-03-30 21:58:41

0

这是一个Python语法参数:

  • * ARGS - 的未命名的参数
  • ** kwargs清单 - 在这里词典(命名参数)