1. 程式人生 > 實用技巧 >python -obj轉dict

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