class Pro: def __init__(self,func): self.func = func def __get__(self, instance, owner): return self.func(instance) class Room: def __init__(self,name,width,length): self.name = name self.width = width self.length = length @Pro #area = Pro(area) 由与Pro是非数据描述符,所以这里就相当于给类的属性area做成了描述符,area.func = area这个函数 def area(self): return self.width * self.length r1 = Room('alex',12,2) print(r1.area) #执行r1.area时,会触发Pro描述符中的get方法,get方法执行的其实就是area方法传入的instance就是r1这个对象
python自定制property
猜你喜欢
转载自www.cnblogs.com/xieys-1993/p/11593484.html
今日推荐
周排行