Python把類當作字典來訪問

定義一個類將它實例化,咱們能夠經過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)直接拿到類的全部實例變量,能夠經過以下方式:python

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

相關文章
相關標籤/搜索