假设你正在开发一个在线购物平台,你需要编写一个 Python 类Item来表示商品, 类ShoppingCart 来表示购物车。 商品类Item包含以下方法: __init__(self, name, price):初始化一个新的商品对象。 get_name(self):返回商品名称。 get_price(self):返回商品单价。 购物车类ShoppingCart 包含以下方法: __init__(self):初始化一个新的购物车对象。 add_item(self, item, quantity):向购物车中添加指定数量的商品。如果购物车中已经存在该商品,则增加其数量,否则将其添加到购物车中。 remove_item(self, item, quantity):从购物车中移除指定数量的商品。如果购物车中该商品的数量少于指定数量,则将其全部移除。 get_total(self):计算购物车中所有商品的总价,返回一个浮点数。 get_item_count(self):返回购物车中商品的总数量。 get_items(self):返回购物车中所有商品及其数量的字典。
时间: 2023-05-24 09:06:55 浏览: 262
代码实现如下:
```
class Item:
def __init__(self, name, price):
self.name = name
self.price = price
def get_name(self):
return self.name
def get_price(self):
return self.price
class ShoppingCart:
def __init__(self):
self.items = {}
def add_item(self, item, quantity):
if item in self.items:
self.items[item] += quantity
else:
self.items[item] = quantity
def remove_item(self, item, quantity):
if item in self.items:
if quantity >= self.items[item]:
del self.items[item]
else:
self.items[item] -= quantity
def get_total(self):
total = 0
for item, quantity in self.items.items():
total += item.get_price() * quantity
return total
def get_item_count(self):
count = 0
for quantity in self.items.values():
count += quantity
return count
def get_items(self):
return self.items
```
说明:
1. Item类有两个属性,分别为商品名称和单价。实例化一个商品对象时需要传入这两个参数。
2. ShoppingCart类初始化时没有任何商品。添加商品时需要传入商品对象和数量。如果购物车中已经存在该商品,则增加其数量,否则将其添加到购物车中。
3. 移除商品时需要传入商品对象和数量。如果购物车中该商品的数量少于指定数量,则将其全部移除。
4. 计算购物车中所有商品的总价时,需要遍历购物车中所有商品并乘以相应的数量,并累加到total变量中。
5. 获取购物车中商品数量时,需要遍历购物车中所有商品的数量并累加到count变量中。
6. 获取购物车中所有商品及其数量的字典时,直接返回购物车的items属性即可。
7. 以上的代码仅为示例,请根据实际需求进行修改和完善。