2012-03-28 7 views
-1

Можно создать дубликат:
What does *args and **kwargs mean?
Understanding kwargs in PythonДжанго с аргументом ** 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() 

Мои вопрос в том, что означает звезда в имени ar gument. Есть ли что-нибудь с указателем на C? Благодаря

+2

Читайте о них здесь: HTTP: // WWW .saltycrane.com/blog/2008/01/how-to-use-args-and-kwargs-in-python/ – Blender

+0

также читайте похожие вопросы, например http://stackoverflow.com/questions/3394835/args-and-kwargs –

+0

также: http://stackoverflow.com/questions/287085/what-does-args-and-kwargs-mean – alan

ответ

0

если вы звоните сохранить, используя эти аргументы:

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

тогда args будет равен (1,2,3,4) т.е. Tuple и kwargs будут равны {'a':20,'b':30,'c':40}dictionary

эти * и ** нотации используются для сбора аргументов в Python, они не являются указателями.

+0

Большое спасибо за ответ! – nam

0

Это синтаксис аргументы питона:

  • * арг - список аргументов неназванных
  • ** kwargs - словарь (названные аргументы)
Смежные вопросы