[Tutor] Help with this work

Sasiliyu Adetunji sasil.adetunji at gmail.com
Mon Feb 6 23:08:49 EST 2017


Hi,
I have been working on yhis assignment

Create a class called ShoppingCart

Create a constructor that takes no arguments and sets the total attribute
to zero, and initializes an empty dict attribute named items.

Create a method add_item that requires item_name, quantity and price arguments.
This method should add the cost of the added items to the current value of
total. It should also add an entry to the items dict such that the key is
the item_name and the value is the quantity of the item.

Create a method remove_item that requires similar arguments as add_item. It
should remove items that have been added to the shopping cart and are not
required. This method should deduct the cost of the removed items from the
current total and also update the items dict accordingly.

If the quantity of an item to be removed exceeds the current quantity of
that item in the cart, assume that all entries of that item are to be
removed.

Create a method checkout that takes in cash_paid and returns the value of
balance from the payment. If cash_paid is not enough to cover the total,
return "Cash paid not enough".

Create a class called Shop that has a constructor which takes no arguments
and initializes an attribute called quantity at 100.

Make sure Shop inherits from ShoppingCart.

In the Shop class, override the remove_item method, such that calling
Shop's remove_item with no arguments decrements quantity by one.


For now this is what i have

class ShoppingCart(object):

  def __init__(self):

    self.total = 0

    self.items = {}

  def add_item(self, item_name, quantity, price):

    if not item_name in self.items:

      self.items[item_name] = quantity

    else:

      self.items[item_name] += quantity

    self.total += quantity * price

  def remove_item(self, item_name, quantity, price):

    if quantity > self.items[item_name]:

      self.items[item_name] = quantity

    else:

      self.items[item_name] -= quantity

    self.total -= quantity * price

  def checkout(self, cash_paid):

    self.cash_paid = cash_paid

    if cash_paid < self.total:

      return "Cash paid not enough"

    else:

      return cash_paid - self.total


class Shop(ShoppingCart):

  def __init__(self):

    self.quantity = 100

  def remove_item(self):

    self.quantity -= 1

Kindly assist me


More information about the Tutor mailing list