我需要monkeypatch请求’响应类(版本1.0.4,当前的这个问题),添加其他方法.
我有这个代码:
import requests class Response(requests.models.Response): def hmm(self): return 'ok' requests.models.Response = Response r = requests.get('http://bbc.co.uk') print r
当原始响应调用super() – https://github.com/kennethreitz/requests/blob/master/requests/models.py#L391时,它失败
我认为这是因为它变得困惑,因为我已经取代了班级,我觉得我正在做一些愚蠢的事情,有什么想法?提前致谢.
解决方法
你最好只是把你的功能直接添加到类中:
def hmm(self): return 'ok' requests.models.Response.hmm = hmm
这工作很好:
>>> import requests >>> def hmm(self): ... return 'ok' ... >>> requests.models.Response.hmm = hmm >>> r = requests.get('http://bbc.co.uk') >>> print r <Response [200]> >>> r.hmm() 'ok' >>> requests.__version__ '1.0.4'