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')())     #返回未定义属性值,外部赋值,值为方法
原文地址:https://www.cnblogs.com/shuzf/p/11890956.html