Python把類當做字典來訪問
- 2020 年 1 月 16 日
- 筆記
定義一個類將它實例化,我們可以通過obj.屬性來訪問類的屬性,如果想獲取類的所有實例變數,我們可以使用obj.__dict__來訪問,如下:
class A: def __init__(self): self.a = 1 self.b = 2 a = A() print(a.__dict__) # {'a': 1, 'b': 2} #獲取變數a: print(a.__dict__['a']) # 1如果我們想直接通過字典的方式訪問類,obj=A(),dict(obj)直接拿到類的所有實例變數,可以通過如下方式:
class A: def __init__(self): self.a = 1 self.b = 2 def keys(self): return ('a','b',) def __getitem__(self, item): return getattr(self, item) a = A() print(dict(a)) #輸出:{'a': 1, 'b': 2}可以看到,通過定義keys方法能夠限制類的實例變數的輸出,用內置的dict方法就能把類轉換成一個普通的字典了