#!/usr/bin/env pythonfrom time import time, ctimeclass 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): # repr() self.__atime = time() return 'self.__data' def __str__(self): # str() self.__atime = time() return str(self.__data) def __getattr__(self, attr): # delegate self.__atime = time() return getattr(self.__data, attr) t = TimedWrapMe(932)print t.gettimestr('c')print t.gettimestr('m')print t.gettimestr('a')print tprint t.gettimestr('c')print t.gettimestr('m')print t.gettimestr('a')t.set('time is up!')print t.gettimestr('m')print tprint t.gettimestr('c')print t.gettimestr('m')print t.gettimestr('a')
Name (required)
email (will not be published) (required)
Website