Python对象自定制property
class lazyProperty: def __init__(self, func): self.func = func """ 利用描述符原理, 当调用area类属性,触发该函数,将instance作为self参数传入 func里面执行 """ def __get__(self, instance, owner): return self.func(instance) class Foo: def __init__(self): self.x = 10 self.y = 20 """ 自定制的property 利用了描述符原理, 当执行了@lazyProperty后,会在Foo类属性里面生成了一个 area= azyProperty(area) 类属性 """ @lazyProperty def area(self): return self.x * self.y obj = Foo() obj.area