from time import time, ctime
class TimedWrapMe(object):
def __init__(self, obj):
self.__data = obj
self.__ctime = self.__mtime = \
self.__atime = time()
def get(self):
self.__atime = time()
return self.__data
def gettimeval(self, t_type):
if not isinstance(t_type, str) or \
t_type[0] not in 'cma':
raise TypeError, "argument of 'c', 'm', or 'a' req'd"
return getattr(self, '_%s__%stime' % \
(self.__class__.__name__, t_type[0]))
def gettimestr(self, t_type):
return ctime(self.gettimeval(t_type))
def set(self, obj):
self.__data = obj
self.__mtime = self.__atime = time()
def __repr__(self):
self.__atime = time()
return `self.__data`
def __str__(self):
self.__atime = time()
return str(self.__data)
def __getattr__(self, attr):
self.__atime = time()
return getattr(self.__data, attr)
<pre name="code" class="python">In [39]: timeWrappedObj = TimedWrapMe(932)
In [40]: timeWrappedObj.gettimestr('c')
Out[40]: 'Fri Dec 26 10:35:53 2014'
In [41]: timeWrappedObj.gettimestr('m')
Out[41]: 'Fri Dec 26 10:35:53 2014'
In [42]: timeWrappedObj.gettimestr('a')
Out[42]: 'Fri Dec 26 10:35:53 2014'
In [43]: timeWrappedObj
Out[43]: 932
In [44]: timeWrappedObj.gettimestr('c')
Out[44]: 'Fri Dec 26 10:35:53 2014'
In [45]: timeWrappedObj.gettimestr('m')
Out[45]: 'Fri Dec 26 10:35:53 2014'
In [46]: timeWrappedObj.gettimestr('a')
Out[46]: 'Fri Dec 26 10:35:54 2014'
In [47]:
In [47]: timeWrappedObj.set('time is up!')
In [48]: timeWrappedObj.gettimestr('m')
Out[48]: 'Fri Dec 26 10:35:54 2014'
In [49]: timeWrappedObj
Out[49]: 'time is up!'
In [50]: timeWrappedObj.gettimestr('c')
Out[50]: 'Fri Dec 26 10:35:53 2014'
In [51]: timeWrappedObj.gettimestr('m')
Out[51]: 'Fri Dec 26 10:35:54 2014'
In [52]: timeWrappedObj.gettimestr('a')
Out[52]: 'Fri Dec 26 10:35:54 2014'