请你给出一个OO模式的实现超市进销存的python案例
时间: 2024-03-17 12:43:02 浏览: 74
好的,我可以给你一个简单的OO模式的超市进销存的Python案例,代码如下:
```python
class Product:
def __init__(self, name, price, stock):
self.name = name
self.price = price
self.stock = stock
class Inventory:
def __init__(self):
self.products = []
def add_product(self, product):
self.products.append(product)
def remove_product(self, product):
self.products.remove(product)
def get_total_value(self):
total_value = 0
for product in self.products:
total_value += product.price * product.stock
return total_value
class Sales:
def __init__(self):
self.sales = []
def add_sale(self, product, quantity):
self.sales.append((product, quantity))
def get_total_sales(self):
total_sales = 0
for product, quantity in self.sales:
total_sales += product.price * quantity
return total_sales
class Supermarket:
def __init__(self):
self.inventory = Inventory()
self.sales = Sales()
def add_product(self, name, price, stock):
product = Product(name, price, stock)
self.inventory.add_product(product)
def remove_product(self, product):
self.inventory.remove_product(product)
def make_sale(self, product, quantity):
if product.stock < quantity:
raise ValueError("Insufficient stock")
product.stock -= quantity
self.sales.add_sale(product, quantity)
def get_total_profit(self):
return self.sales.get_total_sales() - self.inventory.get_total_value()
```
这个案例中,我们定义了三个类:
- `Product`:代表一个商品,包含名称、价格和库存。
- `Inventory`:代表一个库存,包含多个商品,可以添加、删除商品,还可以计算库存总价值。
- `Sales`:代表销售记录,包含多个销售记录,每个记录包含商品和销售数量,可以计算销售总额。
- `Supermarket`:代表一个超市,包含一个库存和销售记录,可以添加、删除商品,可以进行销售,并且可以计算总利润。
这个案例中,我们使用了面向对象的思想,每个类都有自己的职责,通过组合和调用来完成整个系统的功能。
阅读全文