在新的python模块中包装外部python库类/函数

时间:2016-01-28 06:42:55

标签: python proxy-object

我们正在使用一个外部python库(例如Lib1),它有几个类(例如A类,B类)。我们想在该库之上创建一个包装器组件,以便将来如果我们想用其他库替换该库,我们的应用程序不需要更改代码。对于此组件的初始实现,我们可以使用与Lib 1中相同的类和方法创建此组件。

如果A类有方法m1和m2 和 B类有方法m3和m4, 和 m3和m4将Class A实例作为参数; 我们不希望以其方法m1和m2以及类Wrapped_B及其方法m3和m4结束Class Wrapped_A。

有没有办法实现通用代理/委托对象或类,这样我们就不必在Wrapped_A和Wrapped_B中包装每个方法,但我们的应用程序仍然可以在它们上调用def m1,m2,m3和m4(同样,仍然是A类的一个对象被传递给m3和m4)。

我是python的新手,试图理解装饰器和元编程,但这没有帮助。此外,我们当前的要求不是在类或其方法中添加任何新逻辑,而只是创建代理对象/方法,它们只是将调用委托给外部库对象/方法。

感谢您的帮助!

0 个答案:

没有答案