定義一個類將它實例化,我們可以通過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方法就能把類轉換成一個普通的字典了