Question: I would to add one more class in this code with inheritance if possible class Item: def __init__(self, name, price, stock): self.name = name self.price

I would to add one more class in this code with inheritance if possible

class Item: def __init__(self, name, price, stock): self.name = name self.price = price self.stock = stock

def updateStock(self, stock): self.stock = stock

def buyFromStock(self): if self.stock == 0: # raise not item exception pass self.stock -= 1

class VendingMachine: def __init__(self): self.amount = 0 self.items = []

def addItem(self, item): self.items.append(item)

def showItems(self): print(' items available ***************')

for item in self.items: if item.stock == 0: self.items.remove(item) for item in self.items: print(item.name, item.price)

print('*************** ')

def addCash(self, money): self.amount = self.amount + money

def buyItem(self, item): if self.amount < item.price: print('You can\'t but this item. Insert more coins.') else: self.amount -= item.price item.buyFromStock() print('You got ' +item.name) print('Cash remaining: ' + str(self.amount))

def containsItem(self, wanted): ret = False for item in self.items: if item.name == wanted: ret = True break return ret

def getItem(self, wanted): ret = None for item in self.items: if item.name == wanted: ret = item break return ret

def insertAmountForItem(self, item): price = item.price while self.amount < price: self.amount = self.amount + float(input('insert ' + str(price - self.amount) + ': '))

def checkRefund(self): if self.amount > 0: print(self.amount + " refunded.") self.amount = 0

print('Bye.Thank you! ') ###Message in the end.

def vend():

machine = VendingMachine() item1 = Item('choc', 1.5, 2) item2 = Item('pop', 1.75, 1) item3 = Item('chips', 2.0, 3) item4 = Item('gum', 0.50, 1) item5 = Item('mints',0.75, 3) machine.addItem(item1) machine.addItem(item2) machine.addItem(item3) machine.addItem(item4) machine.addItem(item5)

print('Welcome to the vending machine! ***************')

continueToBuy = True while continueToBuy == True: machine.showItems() selected = input('select item: ') if machine.containsItem(selected): item = machine.getItem(selected)

machine.insertAmountForItem(item) machine.buyItem(item)

a = input('buy something else? (y/n): ') if a == 'n': continueToBuy = False machine.checkRefund() else: continue ### Start from beginning after yes

else: print('Item not available. Select another item.') continue

vend()

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!