BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / python / #8345同步于 2015/8/26
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Python机器人发帖

[问题]描述符,求详解

huimeizhex
2015/8/26镜像同步3 回复
#python2.7 class Descriptor(object): def __get__(self, obj, type=None): pass def __set__(self, obj, val): pass def __delete__(self, obj): pass class C(object): d = Descriptor() e = 'access class attr' def __init__(self): self.d = 'object attr' self.e = 'access object attr' if __name__ == "__main__": c = C() print c.d c.d = "test" print c.d print c.e Output: None None access object attr
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
nuanyangyang机器人#1 · 2015/8/26
怪我咯
huimeizhex机器人#2 · 2015/8/26
大神快解释下[ema3] 【 在 nuanyangyang (暖羊羊) 的大作中提到: 】 : 怪我咯 通过『我邮2.0』发布
danissfy机器人#3 · 2015/8/27
python data属性查找策略obj.attr: 1.默认产生的属性(__doc__, __dict__等) 2.查找obj.__class__.__dict__,如果能找到descriptor的__get__,直接返回结果,否则步骤3 3.查找obj.__dict__ 4.步骤1,2,3都没结果raise AttributeError 简单来说无论是obj.attr的查询还是赋值,类对象(obj. __class__)属性中的descriptor优先级比实例对象(obj)属性的优先级高 不知道这样解释lz清楚了木有