在python模型实例化过程中正在做什么

时间:2015-04-06 06:25:30

标签: python django

我对Python很新,并且一直在阅读django教程。我发现了以下内容:

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


>>> p = Poll(question="What's new?", pub_date=timezone.now())

问题: 问题是一个实例变量吗?为什么“this.question = ...”丢失了? poll对象实例化看起来像在使用C#等语言对类进行实例化时分配属性。在这做什么?不确定要查找哪些术语来引用此处使用的概念。

1 个答案:

答案 0 :(得分:2)

它使用元类。

声明类并添加字段时,它们会注册模型类。

然后,当创建一个新实例时,它会获取字段的值,或者传入,或者从字段默认值中获取。

这有点简化,但不是那么多。

您可以阅读models.Model类定义,而无需了解元类内容的工作原理。