在编程时候经常会遇到这样情况
程序中需要1个示例,但是这个示例当前用不到。初始化和计算需要一定的时间。
这个时候就要用到动态延时加载技术。一般手段有代理类,线程。计时器。
在python中也有这样方法。
python中方法的思路是:
构造1个代理类,保存对象或者函数的名称,参数。
实际调用时候,在初始化对象,计算。
参考文章:点击打开链接
对象的构造方法如下
#coding: utf-8
#
class LazyProxy(object):
def __init__(self, cls, *args, **kwargs):
self.__dict__['_cls'] = cls
self.__dict__['_params'] = args
self.__dict__['_kwargs'] = kwargs
self.__dict__["_obj"]=None
def __getattr__(self, item):
if self.__dict__['_obj'] is None:
self._init_obj()
return getattr(self.__dict__['_obj'], item)
def __setattr__(self, key, valu