您的位置:首页 > 编程语言 > Python开发

Python wrap实现简单的时间查看,修改器

2014-12-26 10:36 543 查看
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'



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: