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

来源:互联网 发布:阿里云服务器价格计算 编辑:程序博客网 时间:2024/06/06 14:24
from 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):        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]: timeWrappedObjOut[43]: 932In [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]: timeWrappedObjOut[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'



0 0
原创粉丝点击