zoukankan      html  css  js  c++  java
  • python-依赖存储

    1、ini 文件存储

    class ConfigReader():
        def __init__(self,file_ini = "{}/config.ini".format(FILE_INT_PATH)):
            self.file_ini= file_ini
            self.cf=configparser.RawConfigParser()     #configparser.ConfigParser() 此方法不支持%
            self.cf.read(file_ini,encoding='utf-8-sig')
    
        #添加section
        def add_section(self,section,):
            self.cf.add_section(section)
            self.cf.write(open(self.file_ini, 'w+'))
    
        #添加某个值 ,不存在的section的无法存储,存在的key替换,不存在key创建
        def set_value(self, section, key, value):
            self.cf.set(section, key, value)
            self.cf.write(open(self.file_ini, 'w+'))
    
        #获取section列表
        def get_section(self):
            return self.cf.sections()
    
        #获取某个section的key列表
        def get_key(self,section):
            return self.cf.options(section)
    
        #获取某个section的dict
        def get_section_dict(self, section):
            s = {}
            for k, v in self.cf.items(section):
                s[k] = v
            return s
    
        #获取某个值
        def get_value(self,section,key):
            value = self.cf.get(section, key)
            return value
    
        def get_http(self, name):
            value = self.cf.get("HTTP", name)
            return value
    
        def get_db(self, name):
            value = self.cf.get("DB", name)
            return value
    
        def get_redis(self, name):
            value = self.cf.get("REDIS", name)
            return value
    
        def get_email(self, name):
            value = self.cf.get("EMAIL", name)
            return value

    2、setattr动态添加类属性

    class A():
        name = 'python'
        def __init__(self):
            setattr(self.__class__, 'func_class', self.func)
        def func(self):
            return 'Hello world:func'
        @classmethod
        def funcmethod(cls):
            return 'Hello world:funcmethod'
    
    """
    setattr(object, name, value)  object为对象不是单纯的字符串
    给object对象的name属性赋值,存在则修改,不存在则创建(可在下次直接使用)
    """
    print('setattr==> name:{}'.format(getattr(A, 'name')))
    setattr(A, 'name','shuzf')   #修改变量值
    setattr(A, 'age',30)        #创建变量并赋值
    print(getattr(A, 'name'))   #返回已定义属性值
    print(getattr(A, 'age'))    #返回未定义属性
    
    """
    value为该对象方法时:获取name属性值,即获取方法;外部赋值方法为类静态方法,内部赋值不需要直接self.func
    """
    setattr(A,'funcmethod_class',A.funcmethod) #创建变量并赋值方法
    print(getattr(A,'func_class')())           #返回未定义属性值,内部赋值,值为方法
    print(getattr(A,'funcmethod_class')())     #返回未定义属性值,外部赋值,值为方法
  • 相关阅读:
    Hadoop学习之安装HDFS
    常见的6种数据结构
    maven 编译出错 Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean
    jquery解决js对象、数组赋值时的引用传递
    405 method not allowed(方法不被允许)
    身份证件号 正确性检查方法
    svn 提交信息模板
    idea 使用说明
    java-System类
    java-Integer 类
  • 原文地址:https://www.cnblogs.com/shuzf/p/11890956.html
Copyright © 2011-2022 走看看