#Python 函数修饰符(装饰器)的学习
import time
class Test:
def __init__(self):
self.name=''
self.functionDict = {}
def msg_register(self, msgType,
isFriendChat=False, isGroupChat=False, isMpChat=False):
def _msg_register(fn):
print 'call fn'
self.functionDict[msgType] = fn
return _msg_register
def do(self,msgType):
self.functionDict[msgType]('abc',self.name)
def timeslong(self,func):
def call():
start = time.clock()
print("It's time starting ! ")
func()
print("It's time ending ! ")
end = time.clock()
return "It's used : %s ." % (end - start)
return call
a = Test()
a.name='111'
@a.msg_register('First')
def test(msg,tt):
print 'msg=',msg
print tt
a.do('First')
a.name='222'
def testImg(msg,tt):
print 'msg=',msg
print tt
a.functionDict['Second'] = testImg
a.do('Second')
@a.timeslong
def f():
y = 0
for i in range(10):
y = y + i + 1
print(y)
return y
print(f())
运行结果:
call fn
msg= abc
111
msg= abc
222
It's time starting !
1
3
6
10
15
21
28
36
45
55
It's time ending !
It's used : 0.0278254513276 .