Правильно ли решена задача? Не совсем понимаю условие. Как нужно было ее решать?

Задача:

Напишите заготовку для небольшого магазинчика, который торгует фильмами и книгами.

Создайте класс продукта, у экземпляров которого есть два поля: цена и количество на складе. При создании нового продукта можно передать значения цены и остатка.

Унаследуйте от этого класса два других: книги и фильма соответственно. Своих переменных у этих классов пока нет.

Создайте в основной программе какой-нибудь продукт, например, «фильм Леон». Выведите его стоимость в консоль.

Вот мой код. Я не понимаю, как ее правильно решить нужно.

class Films_and_books:
    shop = []
    name = ''
    price = ''
    quantity_in_stock = ''

    def __init__(self,product,name,price,quantity_in_stock):
        self.product = product
        self.name = name
        self.price = price
        self.quantity_in_stock = quantity_in_stock
        
        Films_and_books.shop.append(self)


    def get_info(self):
        print(self.name)
        print(self.price)
        print(self.quantity_in_stock)


    def get_info_all():
        for i in Films_and_books.shop:
            print(i)


    def add_products(self,shop,*products): 
        for prod in products:
            shop.append(prod)       
    

    def print_products(self,shop): 
        print(shop)

    def __str__(self):
        return f'Продукт: {self.product},Название: {self.name}, Цена: {self.price}, Остаток на складе: {self.quantity_in_stock}'


film_1 = Films_and_books('Фильм','НЕПРОЩЕННЫЙ', 100, 20 )
film_2 = Films_and_books('Фильм','исходный код', 150, 50 )
film_3 = Films_and_books('Фильм','Леон', 200, 15 )

book_1 = Films_and_books('Книга','Мастер и Маргарита', 400, 1000)
book_2 = Films_and_books('Книга','Мёртвые души', 500, 700)
book_3 = Films_and_books('Книга','Война и мир', 480, 620)

class Books (Films_and_books):
    price_books = ''
    quantity_in_stock_books = ''

   
class Films (Films_and_books):
    price_films = ''
    quantity_in_stock_films = ''

   


Films_and_books.get_info(film_3)

Ответы (2 шт):

Автор решения: gil9red

По шагам из задачи:

Создайте класс продукта, у экземпляров которого есть два поля: цена и количество на складе. При создании нового продукта можно передать значения цены и остатка.

class Products:
    def __init__(self, price, number):
        self.price = price
        self.number = number

Унаследуйте от этого класса два других: книги и фильма соответственно. Своих переменных у этих классов пока нет.

class Books(Products):
    pass

class Films(Products):
    pass

Создайте в основной программе какой-нибудь продукт, например, «фильм Леон». Выведите его стоимость в консоль.

films = Films(100, 1)
print(films.price)
# 100
→ Ссылка
Автор решения: CrazyElf

Создайте класс продукта, у экземпляров которого есть два поля: цена и количество на складе. При создании нового продукта можно передать значения цены и остатка.

  • Создайте класс Product, а не Films_and_books.
  • У класса должно быть два поля, а не четыре, как у вас.

Унаследуйте от этого класса два других: книги и фильма соответственно. Своих переменных у этих классов пока нет.

У вас опять какие-то лишние переменные в этих классах, про которые в задании ничего не сказано. И классы эти должны быть названы в единственном числе, а не во множественном.

Создайте в основной программе какой-нибудь продукт, например, «фильм Леон». Выведите его стоимость в консоль.

Это примерно так:

LeonFilm = Film(200, 15 )

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

→ Ссылка