允许将对象实例变量定义为类变量的模式的名称是什么?如何声明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