zoukankan      html  css  js  c++  java
  • class_to_dict和dict_to_class

    1,class_to_dict

    def class_to_dict(obj):
    """
    把对象(支持单个对象、list、set)转换成字典
    """
    is_list = obj.__class__ == [].__class__ #内部的数据是不是列表,也就是可迭代对象
    is_set = obj.__class__ == set().__class__

    if is_list or is_set:
    obj_arr = []
    for o in obj:
    obj_arr.append(class_to_dict(o))
    return obj_arr
    else:
    if hasattr(obj, '__dict__'): #开始走这里
    dic = {}
    for key, value in obj.__dict__.items():
    dic[key] = class_to_dict(value)    #开始走递归,也就是为了取他内部的所有数据,只要内部有可迭代的数据,就会一直调用.
    return dic
    else:
    # # 时间类型用时间戳表示
    # if isinstance(obj, datetime.datetime):
    # return get_timestamp(obj)
    # # 日期类型用yyyy-mm-dd格式的字符串表示
    # if isinstance(obj, datetime.date):
    # return obj.strftime('%Y-%m-%d')
    return obj


    2,dict_to_class

    def dict_to_dict(cls,kwargs):
      """
      cls : 类名称
      kwargs: 类参数
      """
    return cls(**kwargs)
  • 相关阅读:
    socket错误码获取
    代码整洁之道读书笔记函数
    算法学习之堆排序
    包含与继承区别
    提高 LayerBacked Memory Use
    RenderBuffer
    算法学习之快速排序
    NSTimer
    DNS and BIND ... (转载) zhumao
    Samba学习笔记(转载) zhumao
  • 原文地址:https://www.cnblogs.com/52forjie/p/10108429.html
Copyright © 2011-2022 走看看