我有一段代码,可以获取FooBar
中所有函数的列表,以及一个正则表达式,用于匹配函数参数中的消息:
functionList = []
def notify(RegExpression):
def _notify(function):
functionList.append((RegExpression, function))
return function
return _notify
class FooBar:
@notify(".*")
def everything(self, message):
pass
@notify("(\w+):.*")
def reply(self, message):
pass
for foo in functionList:
print("%s => %s" % foo)
我希望能够像这样做,但将函数列表及其参数放入类作为类变量。这将防止在存在更多类(如
FooBar
)时出现问题。每个类都应该有自己的列表。def notify(RegExpression):
# ???
class FooBar:
functionList = []
@notify(".*")
def everything(self, message):
pass
@notify("(\w+):.*")
def reply(self, message):
pass
for foo in FooBar.functionList:
print("%s => %s" % foo)
notify()
方法中需要放置通知的对象。