2017-06-26 169 views
0

我的應用程序的現有方法有許多調用請求方法(GET,POST,PUT,刪除)。我想要點擊這些調用來打印出我的應用程序中所有調用的調試/跟蹤信息。蟒蛇:裝飾模塊

我跑VENV裏面的一切,所以一個顯而易見的選擇是去在VENV的模塊多個請求和裝飾4種方法有,可以做必要的記錄功能。

是否有另一種方法來實現這一目標?

import requests 

# do some magic to install a decorative method for requests.get 

requests.get('http://google.com') 

應該會導致裝飾器獲取將進行必要日誌記錄的調用。

我看着貼片/ flexmock/requests_mock但現在看來,我需要提供替代的實施該方法。我需要的是一種裝飾現有方法的方法。

+0

'requests.get =飾(requests.get)'? – smarx

+0

作品。謝謝 ! – Bhakta0007

+0

FWIW,要求有一個[事件框架(http://docs.python-requests.org/en/master/user/advanced/#event-hooks),所以你不需要猴補丁 –

回答

0

裝飾器僅僅是返回另一個功能的功能:

def decorator(f): 
    def inner(*args, **kwargs): 
     print(args, kwargs) 
     return f(*args, **kwargs) 
    return inner 

requests.get = decorator(requests.get) 
requests.get('http://google.com') 

(('http://google.com',), {}) 
<Response [200]>