Телеграм чат начинающих программистов. Общаемся и помогаем друг другу
Если ссылка не открывается, можно найти нас в поиске по чатам @rubyrush
или
пойти другим путем
Продолжаем развивать наш «Магазин»: реализуйте функционал считывания продуктов из папки data
. Пусть в папке, например, data/films
лежат текстовые файлы в формате, который вам уже знаком (добавляется цена и остаток на складе):
Название фильма
Фамилия и имя режиссера
Год выхода
Цена
Остаток
А в паке data/books
— файлы в таком формате:
Название книги
Жанр
Фамилия и имя автора
Цена
Остаток
Напишите для каждого класса-ребенка метод класса (статический метод) from_file
, который создает новый экземпляр класса, заполняя его данными из файла, чтобы можно было написать вот так:
film = Film.from_file('./data/films/01.txt')
book = Book.from_file('./data/books/01.txt')
Сделайте также, чтобы метод родителя возвращал ошибку NotImplementedError
, на случай, если какой-то ребенок попытается создать себя используя статический метод родителя.
Вспоминайте, как мы делали программу, которая читала фильмы из каталога, чтобы выбрать фильм на вечер.
Напишите метод from_file
у класса Film
так, чтобы читал данные из файла и передавал их в конструктор подобно тому, как мы создавали фильмы из осн. программы.
Не забудьте у класса Product
сделать так, чтобы метод from_file
возвращал ошибку NotImplementedError
.