文件名称:使用延迟计算属性-华为云大数据中台架构分享
文件大小:5.68MB
文件格式:PDF
更新时间:2024-07-01 05:00:39
Python cookbook 中文 参考
8.10 使用延迟计算属性 问题 你想将一个只读属性定义成一个 property,并且只在访问的时候才会计算结 果。 但是一旦被访问后,你希望结果值被缓存起来,不用每次都去计算。 解决方案 定义一个延迟属性的一种高效方法是通过使用一个描述器类,如下所示: class lazyproperty: def __init__(self, func): self.func = func def __get__(self, instance, cls): if instance is None: return self else: value = self.func(instance) setattr(instance, self.func.__name__, value)