Статическая (классовая) переменная модели базы данных движка приложения Google
В GAP вы создаете модель, которую они показывают:
class Pet(db.Model):
name = db.StringProperty(required=True)
type = db.StringProperty(required=True)
birthdate = db.DateProperty()
weight_in_pounds = db.IntegerProperty()
spayed_or_neutered = db.BooleanProperty()
Почему это создается как статические переменные?
Не должны ли они быть, но в __init__()
метод и очистить как self.variable
?
1 ответ
Решение
Когда вы создаете экземпляр экземпляра Pet, он обычно не создается, а создается метаклассом.
Читайте здесь, что такое метакласс: что такое метакласс в Python?
Там есть раздел с надписью "Какого черта вы будете использовать метаклассы?", В котором кратко обсуждается Django ORM. Схема db.Model очень похожа на Django ORM, так что это объяснение применимо.