Python的装饰器


今天我写了一个装饰器,位于一个类之内,并且它的功能不是执行被装饰的函数,而只是把被装饰的函数加入到一个handle_table。这个需求来自于微信公众号开发,具体是这样的:

微信会转发给我的服务器一个用户行为,使用/jemmell路由端口,而这些

用户进行关注时,回复一个欢迎消息

用户扫码关注时,回复一个欢迎消息,同时提取二维码的情景状态信息

用户回复文本消息时,按照一定的格式,进行操作

  • jm01xxx  绑定xxx到该用户,当然xxx是加密后的token或者随机码,在后台与数据库用户关联
  • jm02yyy  重新绑定yyy到该用户
  • jm03  解绑
  • 查资金 查询资金余额
  • 查订单 查询订单状态

等等...

每一种处理,用一个处理函数解决。当装饰这个函数的时候,将该函数加入到处理函数字典。

这种方式如同Flask的route,它是将路由同处理函数加入到一个"路由表"。

但是采用这种方式不能像Flask的route直接回复请求,而是必须再创建一个函数用于执行选定的被装饰函数,这一个函数,交给Flask的实例进行装饰执行。