2015-04-26 12 views
-2

我读教程[这里](https://docs.djangoproject.com/en/1.8/intro/tutorial01/Python语法

,无法理解这种Python语法:

>>> q = Question(question_text="What's new?", pub_date=timezone.now()) 

这部作品的Python 2.7我。以前从未见过。

这里是问题类:

class Question(models.Model): 
     question_text = models.CharField(max_length=200) 
     pub_date = models.DateTimeField('date published') 
+0

对象创建?命名参数? –

+0

@BenjaminGruenbaum不完全,请参阅我上面的编辑。 – abc

+0

这就是所谓的ORM,这是一个替换sql语句的对象 – Abdelouahab

回答

1

python中的这种语法叫做named arguments

例如

class Myclass: 
    def __init__(self, *l, **d): 
     print d 


>>>Myclass(arg1="val1", arg2="val2") 
{'arg1': 'val1', 'arg2': 'val2'} 

通过这样的Django models.Model采取*args**kargs

1

Django的models.Model采取*args**kargs,并使用setattr初始化对象的值。