允許將對象實例變量定義爲類變量的模式的名稱是什麼?如何聲明python聲明性屬性模式
通常python對象屬性在__init__
方法中定義。一些庫允許定義對象的屬性外__init__
:
# django models
class User(Model):
name = fields.StringField()
lastname = fields.StringField()
# django forms
class LoginForm(Form)
username = fields.StringField()
password = fields.PasswordField()
# elasticsearch_dsl
class Post(DocType):
title = Text()
created_at = Date()
published = Boolean()
這是什麼模式的名字嗎?
這不完全是我問的。通常屬性是在'__init__'中聲明的,這種方法有它的名字嗎? – aisbaa
屬性在__init__中設置,沒有真正定義...可能是ORM類模型定義... Class(y)DSL ...聲明式的類級別建模?有些手冊將其稱爲「在SQLAlchemy或Django等其他流行的ORM中可見的聲明式風格。」 http://docs.peewee-orm.com/en/latest/peewee/models.html – Serge
可能會刪除ORM表單的附加形式。然而,仍然所有的例子都是一些模型轉換聲明式API。我敢打賭,除了API和模型轉換之外,很少需要這種模式(來自超類+聲明屬性的構造函數/初始化方法inheretance)。所以現在只需聲明式API類/聲明式類屬性。這個短語migth也涵蓋了一個類用於聲明其他類屬性或對象屬性的情況。您可能希望瀏覽幾個動態ORMS,它們充滿了可能適合您需求的奇特術語。 – Serge