我想建立一个计数器,用于计算商店中扫描物品的总价格,并可以使用删除功能删除物品,但是我的解决方案不起作用。删除项目的规则应如下:
如果item_name不在先前添加的项目中,则什么也不做; 如果item_name在其中,但是数量大于或等于以前添加的具有该名称的项目数,则删除与item_name相关的记录; 如果item_name在其中,但数量少于先前添加的具有此名称的项目的数量,则从后者中减去前一个数量。
class Counter:
def __init__(self, my_id):
#complete the code below;
#id is string;
self._items = list()
self._id = my_id
self._total_amount = 0
self._total_items = 0
def add(self, item_name, amount, price_of_unit):
self.dict_items = {'item_name': item_name,
'amount': amount,
'price_of_unit': price_of_unit}
self.dict_items[item_name] = amount
self._total_amount = (price_of_unit * amount) + self._total_amount
self._total_items = self._total_items + amount
def remove(self, item_name, amount):
if item_name in self.dict_items:
amount_old = self.dict_items[item_name]['amount']
if amount >= amount_old:
del self.dict_items[item_name]
elif amount < amount_old:
self.dict_items['amount'] -= amount
else:
pass
remove()函数没有给我预期的结果。我对使用dicts和Python很陌生,因此,感谢您对理解这一点的帮助。