Задача с контеста, комментарии ревьюера

Рейтинг: -8Ответов: 1Опубликовано: 06.04.2023

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

Ответы

▲ 0Принят

Для начала разберёмся с терминологией. Упрощённо:

  • Метод — это функция в классе
  • Атрибут — это переменная в классе

У вас всего один класс — Dek. И ревьюер хочет, чтобы вы в него добавили функцию is_full:

class Dek:
    def is_full(self):
        self._size >= len(self._data)

Далее ревьюер просит вас добавить переменную max_size. Он считает, что лучше не вызывать функцию len каждый раз при проверке условия (максимальный размер уже не изменится):

class Dek:
    def __init__(self, max_size):
        self._max_size = max_size

    def is_full(self):
        self._size >= self._max_size

И, конечно, вы должны использовать только что созданный метод:

class Dek:
    def __init__(self, max_size):
        self._max_size = max_size

    def is_full(self):
        self._size >= self._max_size

    def _push(self, i, di, value):
        if self.is_full():
            raise OverflowError