|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
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):
self.functionDict[msgType] = fn
return _msg_register
def do(self,msgType):
self.functionDict[msgType]('abc',self.name)
a = Test()
a.name='111'
@a.msg_register('First')
def test(msg,tt):
print ('msg=',msg)
print (tt)[/u]
a.do('First')
这段代码里面修饰符部分怎么改成普通的函数形式?
将修饰符部分修改成普通函数形式的代码如下:
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):
self.functionDict[msgType] = fn
return _msg_register
def do(self,msgType):
self.functionDict[msgType]('abc',self.name)
def test(msg,tt):
print('msg=',msg)
print(tt)
a = Test()
a.name='111'
a.msg_register('First')(test)
a.do('First')
在这个代码中,我们将修饰符 @a.msg_register('First') 替换成了 a.msg_register('First')(test) ,以实现相同的功能。
|
|