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²")

 

posted @ 2024-05-29 08:57  szmtjs10  阅读(12)  评论(0)    收藏  举报