码迷,mamicode.com
首页 > 编程语言 > 详细

『Python』class的积累

时间:2017-12-04 21:21:23      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:col   pre   div   pytho   实例   def   amp   更新   err   

用于深入理解class的博客,不定期更新

self的认识 & 

__getattr__()特殊方法

将字典调用方式改为通过属性查询的一个小class,

class Dict(dict):

    def __init__(self, **kw):
        super(Dict, self).__init__(**kw)

    def __getattr__(self, key):
        try:
            # print(type(key))
            return self[‘b‘]
        except KeyError:
            raise AttributeError(r"‘Dict‘ object has no attribute ‘%s‘" % key)


if __name__ == ‘__main__‘:
    d = Dict(a=1, b=2)
    print(d.a)

1,__getattr__()方法可以接受属性值,并动态的赋予实例属性

2,果然,self在类内部代表的是实例,self[‘b‘]就是因为__init__继承了父类的初始化,所以self才有[‘b‘]查询方法。

 

『Python』class的积累

标签:col   pre   div   pytho   实例   def   amp   更新   err   

原文地址:http://www.cnblogs.com/hellcat/p/7978904.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!