创建构建器和实体的小框架
PyMetabuilder的Python项目详细描述
简介
用元编程创建实体和构建器的小框架 python中的特性。
创建生成器
元生成器的目标是帮助创建生成器和实例,或者 实体与验证容易和快速。
为了创建一个新的生成器,只需定义一个从 元生成器类,并在任何需要的位置定义存根类。为了 例如
from PyMetaBuilder import MetaBuilder #Stub Class to create instances from class Kite(object): pass class KiteBuilder(MetaBuilder): pass
注意
从0.2.1版开始,您可以使用方法model_by_name定义类模型,因此您不必在代码中定义存根类。例如,用'u name('kite')而不是'kite'调用model_
之后,只需启动超类并开始定义 您希望KiteBuilder拥有的属性,例如
class KiteBuilder(MetaBuilder): def __init__(self): MetaBuilder.MetaBuilder.__init__(self) self.defineKite() def define_kite(self): #define the model klass to get instances from self.model(Kite) self.property("design",one_of=["Indoor","Water Kite","Kythoon"]) self.property("line_material",type=str) self.property("StringLength",type=int)
还可以将属性定义为强制属性,其中 方法。这样,当你把建筑商 属性并尝试获取新实例,框架将检查 已设置以前设置为必需的属性。
def define_kite(self): #define the model klass to get instances from self.model(Kite) self.property("StringLength",type=int) #code defining properties.... self.required("design")
从生成器创建实例
定义生成器及其属性后,只需设置参数, 如果你想在这个时候,如果他们不是强制性的,建立一个 实例。
kiteBuilder=KiteBuilder() kiteBuilder.design="Indoor" kiteBuilder.StringLength=23 kite=kiteBuilder.build() #get a Kite instance
当您设置以前定义的属性时,它将验证 传递的值,假定您已使用验证器设置了该值,并且 将在失败时生成相应的异常。