创建构建器和实体的小框架

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

当您设置以前定义的属性时,它将验证 传递的值,假定您已使用验证器设置了该值,并且 将在失败时生成相应的异常。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java访问私有字段而不使用getter方法?   使用PowerMockito在JavaEWSAPI中模拟测试拉订阅   启动活动时未保存java首选项并清除变量   java如何在servlet中检索子域?斯普林有帮手吗   java使用Docker从命令行构建Android项目   java Android,ActionBar后退按钮(setDisplayHomeAsUpEnabled(true))重新创建父活动   java在重用FileOutputStream时应该关闭流吗?   java使用RESTAPI将文件上载到s3 bucket   Java SOAP Web服务应用程序中的mysql用户登录方法不工作   java使用多个数字计算百分比并转换为长   java Android SQLiteDatabase查询忽略空格   java如何在Javafx中比较两个字段文本   java错误:未设置java_HOME,在Eclipse安装后找不到   java在安卓中保存对象   java如何使用jaxws从返回List<Object>的服务中检索值   java Google OAuth2 JWT令牌验证异常   SpringMVC中的JavaUTF8编码问题,当从JSP表单发送POST请求中的越南语信件时   java从webview重定向到安卓应用程序   JUnit 5中多个扩展的java顺序