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