Класс Product работает нормально, но я пытаюсь выяснить, как заставить класс Inventory разделить каждый продукт на определенные категории. Я чувствую, что я близко, но всякий раз, когда я пытаюсь распечатать инвентарь, он просто показывает, где он хранится в памяти, и фактически ничего не распечатывает. Вывод, который я получаю при запуске, находится внизу. Я хочу, чтобы он распечатывал фактические продукты и данные, а не экземпляр, хранящийся в памяти.
class Product:
def __init__(self, pid, price, quantity):
self.pid = pid
self.price = price
self.quantity = quantity
def __str__(self):
#Return the strinf representing the product
return "Product ID: {}\t Price: {}\t Quantity: {}\n".format(self.pid, self.price, self.quantity)
def get_id(self):
#returns id
return self.pid
def get_price(self):
#returns price
return self.price
def get_quantity(self):
#returns quantity
return self.quantity
def increase_quantity(self):
self.quantity += 1
def decrease_quantity(self):
self.quantity -= 1
def get_value(self):
value = self.quantity * self.price
return 'value is {}'.format(value)
product_1 = Product('fishing', 20, 10)
product_2 = Product('apparel', 35, 20)
class Inventory:
def __init__(self, products):
self.products = products
self.fishing_list = []
self.apparel_list = []
self.value = 0
def __repr__(self):
return "Inventory(products: {}, fishing_list: {}, apparel_list: {}, value: {})".format(self.products, self.fishing_list, self.apparel_list, self.value)
def add_fishing(self):
for product in self.products:
if product.get_id() == 'fishing':
self.fishing_list.append(product)
return '{} is in the fishing section'.format(self.fishing_list)
def add_apparel(self):
for product in self.products:
if product.get_id() == 'apparel':
self.apparel_list.append(product)
return '{} is in the apparel section'.format(self.apparel_list)
inventory_1 = Inventory([product_1, product_2])
inventory_1.add_fishing()
print(inventory_1)
OUTPUT = Inventory (продукты: [<<strong> main . Экземпляр продукта в 0x10dbc8248>, <<strong> main . Экземпляр продукта в 0x10dbc8290>], Fishing_list: [<<strong> main . Экземпляр продукта в 0x10dbc8248>], apparel_list: [], значение: 0)