furas

Python - class Product and Inventory

Jul 8th, 2018
115
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class Product(object):
  2.  
  3.     def __init__(self, price, _id, quantity):
  4.         self.price = price
  5.         self.id = _id
  6.         self.quantity = quantity
  7.  
  8.     def total_value(self):
  9.         return self.price * self.quantity
  10.  
  11.     def __str__(self):
  12.         return 'id: {} price: {} quantity: {} value: {}'.format(self.id, self.price, self.quantity, self.total_value())
  13.  
  14.     #def __len__(self):
  15.     #    return self.quantity
  16.  
  17.  
  18. class Inventory(object):
  19.  
  20.     _products = list()
  21.  
  22.     def append(self, product):
  23.         self._products.append(product)
  24.  
  25.     def total_value(self):
  26.          return sum(item.total_value() for item in self._products)
  27.  
  28.     def total_products(self):
  29.          return len(self._products)
  30.  
  31.     def total_quantity(self):
  32.         return sum(item.quantity for item in self._products)
  33.  
  34.     def __str__(self):
  35.         return '\n'.join(str(item) for item in self._products)  
  36.  
  37.     #def __len__(self):
  38.     #    return sum(len(item) for item in self._products)
  39.     #    return sum(item.quantity for item in self._products)
  40.  
  41.  
  42. inv = Inventory()
  43.        
  44. inv.append( Product(300, 'cellphone', 12) )
  45. inv.append( Product(8000, 'laptop', 6) )
  46. inv.append( Product(2, 'sd card', 1234) )
  47.  
  48. print('Available products:')
  49. print(inv)
  50.  
  51. print('Number of products:', inv.total_products())
  52. print('Total quantity:', inv.total_quantity())
  53. print('Total value:', inv.total_value())
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×