『Python』__getattr__()特殊方法


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

將字典調用方式改為通過屬性查詢的一個小class,

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__()方法可以接受屬性值,並動態的賦予實例屬性

2,果然,self在類內部代表的是實例,self['b']就是因為__init__繼承了父類的初始化,所以self才有['b']查詢方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM