Python descriptor
class A: def __init__(self, name): self.name = name def __get__(self, ins, cls): print(‘call get‘) if ins is None: return self return ins.__dict__[self.name] def __set__(self, ins, val): print(‘call set‘) ins.__dict__[self.name] = val def __delete__(self, ins): print(‘cal del‘) del ins.__dict__[self.name] class B: a1 = A(‘a1‘) def __init__(self): self.a1 = 3 #b=B.__new__(B) b=B() b.a1 #B.a1
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。