• python -obj转dict


    参考链接:https://blog.csdn.net/u011622109/article/details/106978372

    对象转obj的三种方式   (常用的是前两种)

    1.__dict__     使用方法:obj.__dict__

    在__init__方法和对象显示赋值的属性才会转化

    2.dict函数       使用方法:dict(obj)

    需要定义keys__getitem__方法,所有属性都会转化dict

    3.取出对象里的属性名和值,塞到dict中

    需要遍历对象的属性

    示例

    第一种方式:

    # 对象类
    class User:
        is_admin = False
        desc = ''
    
        def __init__(self, name) -> None:
            self.name = name
            self.age = 1
    
    # 测试方法
    class MyTestCase(unittest.TestCase):
        def test_user(self):
            user = User('iworkh')
            user.is_admin = True
            # 只有塞值的时候,才会转化为dic
            # desc没有塞值,dic中没有
            print(user.__dict__)
            pass

    第二种:

    class Product:
        price = 10
        desc = ''
    
        def __init__(self, name) -> None:
            self.name = name
    
        def keys(self):
            '''当对实例化对象使用dict(obj)的时候, 会调用这个方法,这里定义了字典的键, 其对应的值将以obj['name']的形式取,
           但是对象是不可以以这种方式取值的, 为了支持这种取值, 可以为类增加一个方法'''
            return ('name', 'price', 'desc')
    
        def __getitem__(self, item):
            '''内置方法, 当使用obj['name']的形式的时候, 将调用这个方法, 这里返回的结果就是值'''
            return getattr(self, item)
            
    # 测试方法
    class MyTestCase(unittest.TestCase):
    
        def test_product(self):
            product = Product('book')
            print(dict(product))
            pass
  • 相关阅读:
    vue 图片切换动态绑定
    弹窗居中,不会随页面滚动变化,直接固定在屏幕中央
    GC优化策略官篇2
    UI优化策略网格重建
    GC优化策略官篇1
    Graphics优化策略官篇3
    GC优化策略官篇3
    Scripts优化策略官篇2
    UI优化策略高级技巧
    Scripts优化策略官篇1
  • 原文地址:https://www.cnblogs.com/wangcuican/p/13853288.html
Copyright © 2020-2023  润新知