我正在使用一个 3rd 方 API,它提供了一个 Python 包装类,其中包含大约 50 个方法,除了接受一组任意参数之外什么都不做。然后,我打算创建自己的类并覆盖这些方法中的每一个来做我真正想要的。我的问题:
有很多方法需要重写,如果他们改变 API,我必须让我的类与他们的完全匹配:维护很糟糕。
我用的是多处理,想把所有的数据打包成msgs,放到一个队列里,结果在另一个进程中处理,所以我不想把我的数据处理逻辑放到这个类里。
他们班级的精简版:
class TheirWrapper:
def __init__(self):
pass
def func1(self, a, b, c):
pass
def func2(self, d, e, f):
pass
... and ~50 more
并精简了我工作的版本:
class MyWrapper:
def addToQueue(self, localvars):
# adds calling function name and localvars to queue (after removing self from localvars)
def func1(self, a, b, c):
self.addToQueue(locals())
def func1=2(self, d, e, f):
self.addToQueue(locals())
... and ~50 more
考虑到我在每个被覆盖self.addToQueue(locals())的__init__方法(这样的事情可能吗?
萧十郎
相关分类