2016-06-15 3 views
0

Я написал класс со многими различными параметрами, в зависимости от параметра, который использует разные действия класса.Python: Отделить методы класса от класса в собственном пакете

Я могу легко дифференцировать свои методы в разных случаях, каждый набор методов, относящихся к определенным параметрам.

В результате появился огромный .py-файл, реализующий все методы в одном классе. Для лучшей читаемости можно ли написать несколько методов в собственном файле и загрузить его (аналогично пакету) в класс, чтобы рассматривать их как методы класса?

Чтобы предоставить более подробную информацию, мой класс является деревом решений. Параметр, например, представляет собой метод обрезки, используемый для сжатия дерева. Поскольку я использую различные методы обрезки, это занимает много строк в моем классе. Мне нужно иметь набор методов для каждого параметра обрезки. Было бы неплохо просто загрузить методы обрезки из другого файла в класс и, следовательно, уменьшить размер моего дерева решений .py.

+0

Звучит как проблема XY. Не могли бы вы привести пример того, что вы пытаетесь выполнить. –

+0

Вы правы, я добавил примерный случай. – Jonas

ответ

0

Для лучшей удобочитаемости я получил несколько предложений.

  1. Свернуть все определения функций, которые могут быть легко достигнуты одним щелчком мыши в большинстве популярных текстовых редакторов.
  2. Связанные с местом методы рядом друг с другом.
  3. Укажите имена для классификации и дифференциации методов, для примера .

    Защиту search_board_first(): пройти

    Защиту search_deep_first(): пройти

Что касается расщепления огромного класса на поведение объектно-ориентированный, мое правило заключается в том, чтобы рассмотреть возможность повторного использования. Если функции могут быть повторно использованы другими классами, их следует поместить в отдельные файлы и сделать их независимыми (статическими) для других классов.

Если методы привязаны к классу и нет где-то еще, лучше просто заключить этот метод внутри самого класса. Подумайте об этом так, чтобы просмотреть код, вам все равно нужно отнести свойства класса. Логически нецелесообразно разделить файлы только для разделения.