• python自动生成bean类


    近期在学习python,一直在和java做对比,目前没有发现有通过字段自动生成getter setter方法,故此自己写了一个类,可以通过__init__方法传入类名和字段数组,再调用内部的方法,就可以自动生成一个bean类,代码如下:

    代码很简单,但还有许多可以完善的地方,比较空格符,参数是否为保留字,append方法中通过+号连接的字符串等,有强迫症的码友可以加以完善。

    class ConvertBean:
    def __init__(self, className, parameters):
    self.__className = className
    self.__parameters = parameters

    def convert(self):
    classStr = "class {0}: def __init__(self,{1}): {2} {3} {4}"
    propertyStr = "@property"
    setterStr = ".setter"
    initParms = []
    initParmsAss = []
    initParmsGetter = []
    initParmsSetter = []
    size = len(self.__parameters)
    for i in range(size):
    __parm = self.__parameters[i]
    initParms.append(__parm)
    initParmsAss.append(" self.__" + __parm + " = " + __parm)
    initParmsGetter.append(
    " " + propertyStr + " def " + __parm + "(self): return self.__" + __parm + " ")
    initParmsSetter.append(
    " @" + __parm + setterStr + " def " + __parm + "(self, " + __parm + "): self.__" + __parm + " = " + __parm + " ")
    __initParmsForInitParms = ",".join(initParms) # 填充构造函数参数
    __initParmsForAssignment = " ".join(initParmsAss) # 参数赋值
    __initParmsForGetter = " ".join(initParmsGetter) # 生成getter
    __initParmsForSetter = " ".join(initParmsSetter) # 生成setter

    print(classStr.format(self.__className, __initParmsForInitParms, __initParmsForAssignment, __initParmsForGetter,
    __initParmsForSetter))


    bean = ConvertBean("Student", ["name", "age", "phone"])
    bean.convert()



  • 相关阅读:
    jinja2模板引擎生成HTML【转】
    Hadoop集群安装
    批量执行工具之pssh
    Linux下安装JDK1.8
    pycharm打开远程linux ssh terminal
    tar高阶操作之加密分卷压缩与解密压缩
    Docker/Dockerfile debug调试技巧
    docker容器内挂载目录无权限 ls cannot open directory Permission denied
    bmc Linux ipmi远程管理口配置查询及密码重置
    js对input框的可编辑属性设置
  • 原文地址:https://www.cnblogs.com/fanstatic/p/10741618.html
Copyright © 2020-2023  润新知