『Python』__getattr__()特殊方法

 self的認識 & __getattr__()特殊方法

將字典調用方式改成經過屬性查詢的一個小class,html

class Dict(dict):
 
    def __init__(self, **kw):
        super(Dict, self).__init__(**kw)
 
    def __getattr__(self, key):
        try:
            print(self)
            return self[key]
        except KeyError:
            raise AttributeError(r"'Dict' object has no attribute '%s'" % key)
 
 
if __name__ == '__main__':
    d = Dict(a=1, b=2)
    print(d.a)
{'a': 1, 'b': 2}
1

1,__getattr__()方法能夠接受屬性值,並動態的賦予實例屬性python

2,果真,self在類內部表明的是實例,self['b']就是由於__init__繼承了父類的初始化,因此self纔有['b']查詢方法。post

相關文章
相關標籤/搜索