오브젝트 인스턴스 변수를 클래스 변수로 정의 할 수있는 패턴의 이름은 무엇입니까?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 클래스 모델 정의가 될 수 있습니다 ... 클래스 (y) DSL ...선언적 클래스 수준 모델링? 일부 매뉴얼에서는 이것을 "SQLAlchemy 나 Django와 같은 다른 인기있는 ORM에서 볼 수있는 선언적 스타일"이라고 부릅니다. http://docs.peewee-orm.com/en/latest/peewee/models.html – Serge
아마 ORM을 추가 할 수 있습니다. 그러나 모든 예는 일부 모델 변환 선언 API입니다. 나는 그 패턴 (슈퍼 클래스 + 선언 속성으로부터의 생성자/초기화 자의 관계)이 API와 모델 변환 밖에서 거의 필요 없다고 확신한다. 이제 선언 API 클래스/선언 클래스 속성. 이 문구 마이 그 레이션은 또한 한 클래스가 다른 클래스 속성이나 객체 속성을 선언하는 데 사용되는 경우도 포함합니다. 당신은 당신의 필요에 맞는 멋진 용어로 가득 찬 여러 가지 역동적 인 ORMS를 찾아 볼 수 있습니다. – Serge