python3 dict类与普通类有关 类属性问题(有问题,没理解头,暂时记下来,方便以后查看)

来源:互联网 发布:linux下安装qt creator 编辑:程序博客网 时间:2024/05/12 23:18

python中在class声明里面定义一个属性,那么该类的所有实例都将拥有这个这个属性,并且如果实例的方法或是属性与类属性重名,那么实例的方法和属性会覆盖类属性和方法

但是,但是对于继承dict类的class却有点不同,类属性不会被实例属性所覆盖,这个地方不知道理解的对不对,暂时先记下了

普通的类

class stu():    def __init__(self, id):        self.id = id    id = 0a = stu(123)print(a.id)#print    1

继承了dict的类

class stu(dict):    def __init__(self, **kw):        super().__init__(**kw)    def __getattr__(self, key):        try:            return self[key]        except AttributeError:            raise r"don't have this key: %s" % key    def __setattr__(self, key, value):        self[key] = value    id = 0    name = 'hhh'    score = 1a = stu(id = 123, name = 'john')print(a.id)print(a.name)print(a.score)#print 0  hhh 1


0 0
原创粉丝点击