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方法就能把類轉換成一個普通的字典了

Tags: