给一个复杂一点的案例
时间: 2024-02-10 22:10:24 浏览: 27
好的,下面是一个稍微复杂一点的 Python 面向对象程序设计的案例,假设我们要设计一个电子商务平台,其中有以下几个类:User、Product、Order 和 Cart。
```
class User:
def __init__(self, name, email, password):
self.name = name
self.email = email
self.password = password
def login(self, email, password):
if self.email == email and self.password == password:
print("Login Successful!")
else:
print("Invalid Email or Password!")
class Product:
def __init__(self, name, description, price, stock):
self.name = name
self.description = description
self.price = price
self.stock = stock
def display(self):
print("Product Name:", self.name)
print("Product Description:", self.description)
print("Product Price:", self.price)
print("Product Stock:", self.stock)
class Order:
def __init__(self, user, products):
self.user = user
self.products = products
def add_product(self, product):
self.products.append(product)
def remove_product(self, product):
self.products.remove(product)
def checkout(self):
total = 0
for product in self.products:
total += product.price
product.stock -= 1
print("Total Amount:", total)
class Cart:
def __init__(self, user):
self.user = user
self.products = []
def add_product(self, product):
self.products.append(product)
def remove_product(self, product):
self.products.remove(product)
def checkout(self):
order = Order(self.user, self.products)
order.checkout()
```
以上代码中,User 类表示一个用户,包含了用户的姓名、邮箱和密码等信息,并且有一个 login() 方法用于用户登录。
Product 类表示一个商品,包含了商品的名称、描述、价格和库存等信息,并且有一个 display() 方法用于显示商品信息。
Order 类表示一个订单,包含了用户和商品列表,并且有 add_product() 和 remove_product() 方法用于添加和删除商品,同时也有一个 checkout() 方法用于结算订单。
Cart 类表示一个购物车,包含了用户和商品列表,并且有 add_product() 和 remove_product() 方法用于添加和删除商品,同时也有一个 checkout() 方法用于结算购物车,实际上就是生成一个订单并调用它的 checkout() 方法。
我们可以使用这些类创建一个电子商务平台,例如:
```
user1 = User("Tom", "tom@example.com", "123456")
user1.login("tom@example.com", "123456")
product1 = Product("iPhone 11", "Apple's latest iPhone", 999, 10)
product2 = Product("MacBook Pro", "Apple's latest MacBook Pro", 1999, 5)
cart = Cart(user1)
cart.add_product(product1)
cart.add_product(product2)
cart.checkout()
```
以上代码创建了一个名为 user1 的用户,以及两个商品 product1 和 product2,然后将它们添加到一个购物车 cart 中,最后调用 cart.checkout() 方法结算购物车,生成一个订单并调用它的 checkout() 方法,输出订单总金额。