五. 综合应⽤
# 1. 定义类:初始化属性、被烤和添加调料的方法、显示对象信息的str class SweetPotato(): def __init__(self): # 被烤的时间 self.cook_time = 0 # 烤的状态 self.cook_state = '生的' # 调料列表 self.condiments = [] def cook(self, time): """烤地瓜方法""" # 1. 先计算地瓜整体烤过的时间 self.cook_time += time # 2. 用整体烤过的时间再判断地瓜的状态 if 0 <= self.cook_time < 3: # 生的 self.cook_state = '生的' elif 3 <= self.cook_time < 5: # 半生不熟 self.cook_state = '半生不熟' elif 5 <= self.cook_time < 8: # 熟了 self.cook_state = '熟了' elif self.cook_time >= 8: # 烤糊了 self.cook_state = '烤糊了' def add_condiments(self, condiment): # 用户意愿的调料追加到调料列表 self.condiments.append(condiment) def __str__(self): return f'这个地瓜的被烤过的时间是{self.cook_time}, 状态是{self.cook_state}, 调料有{self.condiments}' # 2. 创建对象并调用对应的实例方法 digua1 = SweetPotato() print(digua1) digua1.cook(2) digua1.add_condiments('辣椒面儿') print(digua1) digua1.cook(2) digua1.add_condiments('酱油') print(digua1)
class Furniture(): def __init__(self, name, area): self.name = name self.area = area class Home(): def __init__(self, address, area): # 地理位置 self.address = address # 房屋面积 self.area = area # 剩余面积 self.free_area = area # 家具列表 self.furniture = [] def __str__(self): return f'房子地理位置在{self.address}, 房屋面积是{self.area}, 剩余面积{self.free_area}, 家具有{self.furniture}' def add_furniture(self, item): """容纳家具""" # 如果 家具占地面积 <= 房子剩余面积:可以搬入(家具列表添加家具名字数据并房子剩余面积更新: # 房屋剩余面积 - 该家具的占地面积 # 否则:提示用户家具太大,剩余面积不足,无法容纳 # ) if item.area <= self.free_area: self.furniture.append(item.name) self.free_area -= item.area else: print('家具太大,剩余面积不足,无法容纳') # 双人床, 6 bed = Furniture('双人床', 6) sofa = Furniture('沙发', 10) # 房子1: 北京, 1000 jia1 = Home('北京', 1000) print(jia1) jia1.add_furniture(bed) print(jia1) ball = Furniture('篮球场', 2000) jia1.add_furniture(ball) print(jia1)