我用 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 不是可以作为返回值的吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.