Передача частных атрибутов в функцию полезностиPython

Программы на Python
Гость
Передача частных атрибутов в функцию полезности

Сообщение Гость »


У меня есть 3 класса с операцией слияния, которая выполняет одинаковые операции с разными аргументами.

Вот скелет того, чем я сейчас занимаюсь:

класс FirstClass: защита __init__(сам): # определяем конструктор def merge(сам, другое): # объединить другого с собой merge_util(src=other, dest=self) класс ВторойКласс: защита __init__(сам): # определяем конструктор def merge(сам, другое): # объединить другого с собой merge_util(src=other, dest=self) # Третий класс определен одинаково merge_util определяется следующим образом:

def merge_util(src, dest): # объединить частные атрибуты src (массив, список и таблицу базы данных) в dest Проблема в том, что этот дизайн нарушает инкапсуляцию. Внешняя функция обращается к частным/защищенным атрибутам.

Я придумал два решения:
[*]
Определите merge_util как метод каждого класса, но тогда я буду дублировать код для каждого класса.
[*]
Используйте наследование. В остальном эти классы имеют мало общего, поэтому я не использовал наследование с самого начала и хочу этого избежать.

Есть ли другие подходы, которые я могу рассмотреть?

Вернуться в «Python»