我需要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'