2019年9月29日 自定制property
描述符能实现大多pyhon类特性中的底层方法,包括:classmethod , staticmethd , property , __slots__
描述符在被修饰的类中去定义一个类属性
class Lazyproperty: def __init__(self,func): print('>>>>>',func) self.func=func def __get__(self, instance, owner):#self 是Lazyproperty()生成的对象 print('get方法') return self.func(instance)#instance含义是传递的实例本身,owner是产生instance的类 class Room: #描述符在被修饰的类中去定义 # area=Lazyproperty(area)#描述符操作,但是下面的@lazyproperty 就是在做相同的事情 def __init__(self,name,width,length): self.name=name self.width=width self.length=length # @property #静态属性 有@实际就在运行 area=property(area) 相当于对property 做实例化。可以是函数,也可以是类,都能实现装饰器效果,实现了给类增加描述符area=property(area) @Lazyproperty def area(self): return self.width*self.length r1=Room('cs',2,4) print(r1.area) #此处调用的是Lazyproperty(area)后返回赋值的area,触发非数据描述符 # print(r1.area.func(r1))#纯手动触发运行
》》》》》》》》》》
get方法
8
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server如何跟踪自动统计信息更新?
· AI与.NET技术实操系列:使用Catalyst进行自然语言处理
· 分享一个我遇到过的“量子力学”级别的BUG。
· Linux系列:如何调试 malloc 的底层源码
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· 对象命名为何需要避免'-er'和'-or'后缀
· JDK 24 发布,新特性解读!
· .NET Core奇技淫巧之WinForm使用Python.NET并打包
· .NET 10 Preview 2 增强了 Blazor 和.NET MAUI
· Java24你发任你发,我用Java8