我对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#等语言对类进行实例化时分配属性。在这做什么?不确定要查找哪些术语来引用此处使用的概念。
答案 0 :(得分:2)
它使用元类。
声明类并添加字段时,它们会注册模型类。
然后,当创建一个新实例时,它会获取字段的值,或者传入,或者从字段默认值中获取。
这有点简化,但不是那么多。
您可以阅读models.Model
类定义,而无需了解元类内容的工作原理。