44 lines
1.1 KiB
Python
44 lines
1.1 KiB
Python
class ListItem:
|
|
def __init__(self, name: str, price: float, quantity: int):
|
|
self.name = name
|
|
self.price = price
|
|
self.quantity = quantity
|
|
self.is_basket = False
|
|
|
|
def toggle_basket(self):
|
|
self.is_basket = not self.is_basket
|
|
|
|
def __str__(self) -> str:
|
|
if self.is_basket:
|
|
return f"in basket" # on actual screen should be crossed/marked off
|
|
else:
|
|
return f"{self.name:<32} | {str(self.quantity):>2} | {self.price:>6.2f}"
|
|
|
|
|
|
class ShopList:
|
|
def __init__(self, items: []):
|
|
self.items = items
|
|
|
|
def clear(self):
|
|
self.items = []
|
|
|
|
def add_item(self, item: ListItem):
|
|
self.items.append(item)
|
|
|
|
def pop_item(self, index: int):
|
|
self.items.pop(index)
|
|
|
|
def toggle_basket(self, index: int):
|
|
self.items[index].toggle_basket()
|
|
|
|
|
|
# main() below this line
|
|
def main():
|
|
newlist = ShopList([ListItem("Oranges", 2.50, 5), ListItem("Apple", 69.99, 1)])
|
|
for i in newlist.items:
|
|
print(i)
|
|
|
|
|
|
if __name__ == "__main__": # test
|
|
main()
|