【发布时间】:2020-07-17 13:38:02
【问题描述】:
我需要修补我正在使用的库的实例方法中的逻辑。
为简洁起见,示例代码。 process 方法按原样使用Client 库的connect 方法,但我想修改它以使用不同的逻辑而不是 parsing_logic_1。做到这一点的最佳方法是什么?如果我在Usage 类中添加新的_patched_connect 方法,如何访问像url 这样的类变量?
class Client:
def __init__(self, url)
self.url = url
def connect (self):
if self.url == 'a':
self._parsing_logic_1()
if self.url == 'b':
self._parsing_logic_2()
else:
pass
def _parsing_logic_1(self):
pass
def _parsing_logic_2(self):
pass
def send(self):
pass
# ----separate file --------
class Usage:
def __init__(self, client: Client):
self.client = client
def process(input):
self.client.connect() # the connect method should use a different parsing logic for one case
self.client.send()
【问题讨论】:
标签: python python-decorators monkeypatching