0

我正在使用 webapp2 框架来处理来自客户端的请求。我需要从每个标题中提取一些信息并稍后在响应中使用(标题中始终使用相同的键)。问题是我需要为大量处理程序执行此操作,并且我想避免重复相同的代码(我可以编写来自 self => self 的函数在 get 函数中作为参数读取并返回数据传递),我可以这样做吗使用装饰器的优雅方式?

class SomeHandler(webapp2.RequestHandler):

    def get(self):
        # here from self like self.request.headers.get('X-appengine-country') get country info I can extract country and do this for every handler
        pass
4

1 回答 1

1
def extract_country(f):
  def wrapper(self):
    print self.request.headers.get('X-appengine-country')
    return f(self)
  return wrapper

class SomeHandler(webapp2.RequestHandler):
    @extract_country
    def get(self):
        pass

如果您想自动为所有方法执行此操作,请使用元类。

于 2013-11-10T00:51:52.637 回答