首页 > 编程语言 > 详细

『Python』class的积累

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

用于深入理解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的积累

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

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!