use*_*375 9 python monkeypatching
我需要monkeypatch请求的Response类(版本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
Run Code Online (Sandbox Code Playgroud)
原始响应调用super()时失败 - https://github.com/kennethreitz/requests/blob/master/requests/models.py#L391
我认为这是因为它变得困惑,因为我已经取代了课程,我觉得我在做一些愚蠢的事情,任何想法?提前致谢.
Mar*_*ers 12
只需将函数直接添加到类中,您最好:
def hmm(self):
return 'ok'
requests.models.Response.hmm = hmm
Run Code Online (Sandbox Code Playgroud)
这很好用:
>>> 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'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3964 次 |
| 最近记录: |