一个完整的类(python任何类只要继承这个方法,它的实例对象都可以转换成dict序列化)

一个完整的类(python任何类只要继承这个方法,他的实例对象都可以转换成dict)



# 让一个类支持转换成dict()字典的基类(json.dumps方法序列化必须继承这个类)
class ClassIterator:
    def __init__(self):
        self.iter_keys = []

    # 对象转字典必须实现的方法,自动调用获取需要dict化的属性名
    def keys(self):
        return self.iter_keys

    # 对象模式序列化成dict必须实现的方法,和keys方法配合返回dict属性的value
    def __getitem__(self, key):
        return getattr(self, key)

    # 可以动态隐藏不需要返回的属性名
    def hide(self, *keys):
        for key in keys:
            self.iter_keys.remove(key)
        # 兼容链式调用(非常适合列表推导式)
        return self

    # 可以动态增加需要返回的属性名
    def append(self, *keys):
        for key in keys:
            self.iter_keys.append(key)
        # 兼容链式调用(非常适合列表推导式)
        return self

猜你喜欢

转载自blog.csdn.net/weixin_43343144/article/details/87827745