在Python中,我们经常需要在类中定义属性。有时候,我们希望这些属性在首次访问时才被计算或初始化,以避免不必要的开销。为了实现这个目的,我们可以使用装饰器来延迟加载类属性。本文将介绍如何使用装饰器实现这一功能,并提供相应的源代码。
首先,让我们来定义一个延迟加载装饰器。该装饰器将接收一个函数作为参数,并返回一个新的函数。新函数将在首次访问属性时调用原始函数,并将结果保存在属性中。以下是一个简单的实现:
def lazy_property(func):
attr_name = '_lazy_' + func.__name__
@property
def wrapper(self)