Раздел 45 · Python backend: Тарбадель

Наследование против композиции

junior~30 мин

без входаВойди, чтобы отмечать прогресс, вести заметки и решать задачи в редакторе. войти

Квот заходит в депо без стука, с кружкой чужого синт-чая. Его «быстрая» версия терминала стоит уже в трёх ларьках, и корзину для неё он написал за минуту:

class Cart(dict):
    def add(self, name, quantity=1):
        self[name] = self.get(name, 0) + quantity

Вопрос честный. В прошлом уроке ты закрыл смену от чужих рук, но корзина так и осталась словарём внутри смены, а её логика размазана по двадцати методам. Корзину пора делать своей вещью. Есть два способа построить вещь на основе другой. Можно сказать «корзина это словарь, только с add», как Квот. А можно сказать «у корзины внутри есть словарь». Первый способ зовут наследованием, второй композицией, и сегодня ты научишься их различать.

урок из курса

Урок из курса «Python backend: Тарбадель». Курс покупается один раз и остаётся навсегда: 500 ₽.

Оплата пока не подключена: премиум и курсы открываются промокодом.