2015-04-06 29 views
0

我對Python很新,並且一直在閱讀django教程。在python模型實例化過程中正在做什麼

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 = ...」缺失? 輪詢對象實例化看起來像在C#語言中對類進行類型化時分配屬性。這裏做了什麼?不確定要查找哪些術語來指代這裏使用的概念。

+0

您應該閱讀:https://docs.djangoproject.com/en/1.8/ref/models/instances/ – ruddra 2015-04-06 06:46:12

回答

2

它使用元類。

當聲明該類並添加字段時,它們向模型類註冊。

然後,當創建一個新的實例時,它會獲取這些字段的值,可以是傳入的,也可以是字段默認值。

這是一個簡單化,但沒有那麼多。

您可以閱讀models.Model類定義,而不必瞭解元類的工作方式。

相關問題