2013-11-10 99 views
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 

回答

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 

如果你想自動爲所有的方法,然後使用元類。

相關問題