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')())     #返回未定义属性值,外部赋值,值为方法
  • 相关阅读:
    Java数组的使用
    Java的栈堆以及数组两种不同类型的定义
    Java数组声明的创建
    JAVA递归
    Java可变参数
    Java方法(类--------对象--------方法)
    html块元素和内联元素的区别
    HTML基础介绍
    CSS网页美化元素属性介绍
    ArrayList类的remove(Object o)方法简述
  • 原文地址:https://www.cnblogs.com/shuzf/p/11890956.html
Copyright © 2011-2022 走看看