我用 flask 框架做一个网站的过程中,要用到装饰器,缩减版代码如下:
def testwra(func): print "testwra" def _wrapper(): print "wra" r = func() return r print "end" return _wrapper
@testwra @app.route('/users', methods=['GET']) def get_users(): return ['33', '44']
这里,正常的执行顺序不应该是 testwra->先后打印 testwra 和 end->调用_wrapper->打印 wra->调用 func()函数->返回 list->返回 r,但是我这里在浏览器中输入 url ( http://localhost:5000/users ),却不会打印 wra,好像是没有进入_wrapper 函数中。 而且还会报错 TypeError: 'list' object is not callable list 不是可以作为返回值的吗?