Модуль Twython использует внутренний модуль запросов.Я хочу украсить метод в классе, но без редактирования class.py - подробности внутри
Я хочу, чтобы обернуть/украсить запрос requests.post(*k, **kw)
, так что все, что Twitton делает request.post(...)
, будет его прозрачно оформлять/обертывать без вмешательства в модуль Twython.
Если я отредактировал кодовую базу запросов, которая была бы достаточно легкой, но мне любопытно, как решить общую проблему добавления декоратора к уже определенному функции/методу.
import requests
def magic_wrapper_doodad(...)
...
...
requests.post = magic_wrapper_doodad(my_function, requests.post) # plz?
import Twython
# thanks to the above magic, requests.post is wrapped just as if it was defined like:
@decorator
def trace(f, *args, **kw):
print("calling %s with args %s, %s" % (f.__name__, args, kw))
return f(*args, **kw)
...
... #inside requests.py now:
@trace
def post(self, *args, **kw):
...
как я пишу magic_wrapper_doodad()
- или какой-либо альтернативный код - так что я могу украсить код, как это?
s/request/requests – jterrace
@jterrace: символы 's' введены должным образом. –
запросы - это модуль, хотя и не класс. +1 – jterrace