码迷,mamicode.com
首页 > 编程语言 > 详细

python学习之描述符自制property

时间:2020-05-19 14:43:25      阅读:56      评论:0      收藏:0      [点我收藏+]

标签:Owner   pre   int   自制   python   实例   property   get   ini   

class lazyproperty:
def __init__(self,fun):
self.fun=fun

def __get__(self, instance, owner):
print("get")
print(‘===========>‘,self)
print(‘===========>‘,instance)
print(‘===========>‘,owner)
if instance is None:
return self
res=self.fun(instance)
setattr(instance,self.fun.__name__,res)
return res

class Room:
#area1=lazyproperty(area1)
def __init__(self,name,width,length):
self.name=name
self.width=width
self.length=length

@property #把一个函数伪装成一个属性
def area(self):
return self.width*self.length

@lazyproperty
def area1(self):
return self.width*self.length

r1=Room("卧室",6,5)
# print(Room.__dict__)
# print(r1.area) #实例调用
print(r1.area1)
# print(Room.area) #类调用
# print(Room.area1)
print(r1.area1)
print(r1.area1)

python学习之描述符自制property

标签:Owner   pre   int   自制   python   实例   property   get   ini   

原文地址:https://www.cnblogs.com/jinpingzhao/p/12916330.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!