• Предмет: Информатика
  • Автор: Sergey202222
  • Вопрос задан 5 месяцев назад

Разработать три класса, которые следует связать между собой, используя наследование:
1. класс Product, который имеет три элемент-данных — имя, цена и вес товара (базовый класс для всех классов);
2. класс Buy, содержащий данные о количестве покупаемого товара в штуках, о цене за весь купленный товар и о весе товара (производный класс для класса Product и базовый класс для класса Check);
3. класс Check, не содержащий никаких элемент-данных. Данный класс должен выводить на экран информацию о товаре и о покупке ( производный класс для класса Buy);
Программа должна содержать массив, заполненный объектами производных классов. В программе должно демонстрироваться использование всех разработанных элементов классов.(Это нужно сделать на питоне, но я не знаю толком этот язык. Спасибо заранее )

Ответы

Ответ дал: makason512
1

Ответ:

class Product:

   def __init__(self, name, price, weight):

       self.name = name

       self.price = price

       self.weight = weight

class Buy(Product):

   def __init__(self, name, price, weight, quantity, total_price, total_weight):

       super().__init__(name, price, weight)

       self.quantity = quantity

       self.total_price = total_price

       self.total_weight = total_weight

class Check(Buy):

   def __init__(self, name, price, weight, quantity, total_price, total_weight):

       super().__init__(name, price, weight, quantity, total_price, total_weight)

   def print_info(self):

       print(f"Информация о товаре:")

       print(f"Наименование: {self.name}")

       print(f"Цена: {self.price}")

       print(f"Вес: {self.weight}")

       print()

       print(f"Информация о покупке:")

       print(f"Количество: {self.quantity}")

       print(f"Общая цена: {self.total_price}")

       print(f"Общий вес: {self.total_weight}")

# Создание массива товаров

products = [

   Buy("Хлеб", 15, 1, 2, 30, 2),

   Buy("Молоко", 65, 2, 1, 65, 2),

   Buy("Яблоки", 75, 1.5, 3, 225, 4.5),

]

# Вывод информации о товарах

for product in products:

   product.print_info()


Sergey202222: выдает ошибку по последней строке ('Buy' object has no attribute 'print_info'
)
makason512: попробуй тогда

заменить массивы на
products = [
Check("Хлеб", 15, 1, 2, 30, 2),
Check("Молоко", 65, 2, 1, 65, 2),
Check("Яблоки", 75, 1.5, 3, 225, 4.5),
]
makason512: или так

class Buy(Product):
def __init__(self, name, price, weight, quantity, total_price, total_weight):
super().__init__(name, price, weight)
self.quantity = quantity
self.total_price = total_price
self.total_weight = total_weight

def print_info(self):
Sergey202222: Да, спасибо, заработало, как вы и сказали заменил массив и все заработало, еще раз большое спасибо
Вас заинтересует