Python django 教程中的语法

Python syntax in django tutorial

我正在[此处]阅读教程(https://docs.djangoproject.com/en/1.8/intro/tutorial01/)

并且无法理解这个 python 语法:

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

这对我来说适用于 Python 2.7。以前没见过这个。

这是问题 class:

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

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

此语法在 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.