python面向对象
def ydrz(): print("引导入座") def dcd(): print("递菜单") def dc(): print("点餐") def gscscd(): print("告诉厨师菜谱") def zc(): print("做菜") def yc(): print("用餐") def jscf(): print("计算餐费") def zfcf(): print("支付餐费") def sqcf(): print("收取餐费") ydrz() dcd() dc() gscscd() zc() yc() jscf() zfcf() sqcf()
class Waiter(): def ydrz(self): print("引导入座") def dcd(self): print("递菜单") def gscscd(self): print("告诉厨师菜谱") class Customer(): def dc(self): print("点餐") def yc(self): print("用餐") def zfcf(self): print("支付餐费") class Cook(): def zc(self): print("做菜") class Cashier(): def jscf(self): print("计算餐费") def sqcf(self): print("收取餐费") zhangsan=Customer() xiaoming=Waiter() laowang=Cook() xiaohong=Cashier() xiaoming.ydrz() xiaoming.dcd() zhangsan.dc() xiaoming.gscscd() laowang.zc() zhangsan.yc() xiaohong.jscf() zhangsan.zfcf() xiaohong.sqcf()
#NewCookWaiter from Cook import * from Waiter import * class NewCookWaiter(Cook,Waiter): def __init__(self, name, gender, tel): self.name = name self.gender = gender self.tel = tel
from Customer import * from Waiter import * from Cook import * from Cashier import * from NewCook import * from NewCookWaiter import * zhangsan=Customer('张三',32,'11111111111') xiaoming=Waiter('小明',20,'22222222222') laowang=Cook('老王',52,'33333333333') xiaowang=NewCook('小王',19,'55555555555') xiaohong=Cashier('小红',25,'44444444444') xiaogang=NewCookWaiter('小刚',22,"6666666666") xiaoming.ydrz() xiaoming.dcd() zhangsan.dc() xiaoming.gscscd() laowang.zc() xiaowang.zc() xiaowang.zmb() zhangsan.yc() xiaohong.jscf() zhangsan.zfcf() xiaohong.sqcf() xiaogang.zc() xiaogang.ydrz()
美团按类实现案例
class User: def __init__(self, name): self.name = name def place_order(self, merchant, food): print(f"用户 {self.name} 向 {merchant.name} 下单:{food}") merchant.receive_order(food) # 调用商家接单方法 class Merchant: def __init__(self, name): self.name = name self.orders = [] def receive_order(self, food): self.orders.append(food) print(f"{self.name} 已接单,当前订单:{self.orders}") class Rider: def __init__(self, name, status="空闲"): self.name = name self.status = status def grab_order(self, order): if self.status == "空闲": self.status = "配送中" print(f"骑手 {self.name} 抢单成功:{order}") else: print(f"骑手 {self.name} 正在配送,无法抢单") def deliver_order(self): self.status = "空闲" print(f"骑手 {self.name} 已送达,状态恢复为:{self.status}") class Admin: def __init__(self): self.riders = [] def add_rider(self, rider): self.riders.append(rider) print(f"管理员添加骑手:{rider.name}") def remove_rider(self, rider): if rider in self.riders: self.riders.remove(rider) print(f"管理员撤销骑手:{rider.name}") else: print(f"骑手 {rider.name} 不存在") # 示例调用 if __name__ == "__main__": # 创建角色实例 user = User("小明") merchant = Merchant("麦当劳") rider = Rider("张三") admin = Admin() # 管理员添加骑手 admin.add_rider(rider) # 用户下单 user.place_order(merchant, "汉堡套餐") # 骑手抢单 rider.grab_order("汉堡套餐") # 骑手完成配送 rider.deliver_order() # 管理员撤销骑手 admin.remove_rider(rider)
类的方式实现
的面积计算
import math class Shape: def area(self): pass class Triangle(Shape): def __init__(self, base, height): self.base = base self.height = height def area(self): return 0.5 * self.base * self.height class Rectangle(Shape): def __init__(self, length, width): self.length = length self.width = width def area(self): return self.length * self.width class Circle(Shape): def __init__(self, radius): self.radius = radius def area(self): return math.pi * self.radius ** 2 class House: def __init__(self, roof_base, roof_height, wall_length, wall_width, window_radius): self.roof = Triangle(roof_base, roof_height) # 屋顶三角形 self.wall = Rectangle(wall_length, wall_width) # 墙体矩形 self.window = Circle(window_radius) # 窗户圆形 def total_area(self): return self.roof.area() + self.wall.area() - self.window.area() # 示例用法(假设屋顶底边长8m,高3m;墙体长10m,宽6m;窗户半径1m) house = House(8, 3, 10, 6, 1) print(f"房屋总面积: {house.total_area():.2f} m²")