python学习之描述符自制property

Posted 秋雨的蝴蝶

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python学习之描述符自制property相关的知识,希望对你有一定的参考价值。

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的主要内容,如果未能解决你的问题,请参考以下文章

Python学习之属性访问与描述符详解

Python学习之day1

python学习之 - re模块

python学习之解决中英文混合输出的排版问题

python学习之遇到得基础报错

Python学习之format函数的使用