我们正在使用一个外部 python 库(例如 Lib1),它有几个类(例如 A 类、B 类)。我们希望在该库之上创建一个包装器组件,以便将来如果我们想用其他库替换该库,我们的应用程序不需要更改代码。对于此组件的初始实现,我们可以使用与 Lib 1 中相同的类和方法创建此组件。
如果A类有方法m1和m2,B类有方法m3和m4,m3和m4以A类实例为参数;我们不想最终得到带有方法 m1 和 m2 的 Class Wrapped_A 和带有方法 m3 和 m4 的 Class Wrapped_B。
有没有办法实现一个通用的代理/委托对象或类,这样我们就不必在 Wrapped_A 和 Wrapped_B 中包装每个方法,但我们的应用程序仍然可以在它们上调用 def m1、m2、m3 和 m4(同样,仍然是一个对象A 类被传递给 m3 和 m4)。
我是 python 新手,试图了解装饰器和元编程,但这并没有帮助。此外,我们目前的要求不是在类或其方法中添加任何新逻辑,而只是创建代理对象/方法,它将仅将调用委托给外部库对象/方法。
谢谢您的帮助 !