Sobes.tech
Назад к вопросам
Middle
7

Писали ли свои классы?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

Ожидают, что есть практический опыт проектирования собственных классов под задачу, а не только использование готовых библиотек. Важно показать, что классы применялись для инкапсуляции логики, состояния и интерфейса. Хорошо, если есть примеры про пайплайны, датасеты, трансформеры, модели или сервисные обёртки.

Определение:

Свои классы — это пользовательские типы, которые объединяют данные и поведение в одном месте. В ML/AI их часто делают для загрузки и подготовки данных, обучения модели, валидации, логирования, инференса и конфигурации. Такой подход делает код более структурированным, переиспользуемым и удобным для поддержки.

Пример использования:

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

class DataPreprocessor:
    def __init__(self, fill_value=0):
        self.fill_value = fill_value

    def transform(self, df):
        df = df.copy()
        df = df.fillna(self.fill_value)
        return df

preprocessor = DataPreprocessor(fill_value=-1)
clean_df = preprocessor.transform(raw_df)

Пояснение кода:

Код нужен, потому что пример связан с программированием.
Класс DataPreprocessor инкапсулирует параметр fill_value, который используется при очистке данных.
Метод transform принимает таблицу df, создаёт копию, чтобы не менять исходный объект, и заполняет пропуски заданным значением.
Дальше объект класса создаётся с нужной настройкой, после чего вызывается метод преобразования данных.

Ключевые моменты:

  • Класс полезен, когда нужно хранить состояние и переиспользовать одинаковую логику.
  • В ML-коде классы часто используют для препроцессинга, обучения, инференса и обёрток над внешними сервисами.
  • Хороший класс имеет понятный интерфейс: что принимает на вход и что возвращает.
  • Важно не усложнять: если достаточно функции, не стоит делать класс ради класса.
  • На собеседовании ценят примеры, где класс улучшил поддержку, тестирование или переиспользование кода.