Обернуть внешние классы / функции библиотеки Python в новый модуль Python

Мы используем внешнюю библиотеку Python (например, Lib1), которая имеет несколько классов (например, Класс A, Класс B). Мы хотим создать компонент-оболочку поверх этой библиотеки, чтобы в будущем, если мы захотим заменить эту библиотеку другой библиотекой, нашему приложению не нужно было менять код. Для начальной реализации этого компонента, мы в порядке с созданием этого компонента с теми же классами и методами, что и в Lib 1.

Если класс A имеет метод m1 и m2, а класс B имеет метод m3 и m4, а m3 и m4 принимают экземпляр класса A в качестве параметра; Мы не хотим заканчивать классом Wrapped_A с его методами m1 и m2 и классом Wrapped_B с его методами m3 и m4.

Есть ли способ реализовать универсальный объект или класс прокси / делегата, чтобы нам не нужно было оборачивать все методы в Wrapped_A и Wrapped_B, но наше приложение может вызывать для них def m1, m2, m3 и m4 (также, все еще объект класса А передается на м3 и м4).

Я новичок в Python, пытался понять декоратор и метапрограммирование, но это не помогло. Кроме того, в настоящее время наше требование состоит не в том, чтобы добавлять какую-либо новую логику в класс или их методы, а просто в создание прокси-объекта / методов, которые будут просто делегировать вызовы внешним объектам / методам библиотеки.

Спасибо за помощь!

0 ответов

Другие вопросы по тегам