Python学习作业四
面向对象学习运用
1、烤地瓜
# 1、创建地瓜类(属性包含,烤制时间、烤制状态、烤制味道) class SweetPotato(): def __init__(self): self.potato_time = 0 self.potato_state = '生的' self.potato_condiments = [] def cook(self, time): self.potato_time += time times = int(self.potato_time) if 0 <= times < 3: self.potato_state = '生的' elif 3 < times <= 5: self.potato_state = '半生不熟' elif 5 < times <= 7: self.potato_state = '熟了' elif times > 7: self.potato_state = '烤糊了' def add_condition(self, condiment): self.potato_condiments.append(condiment) def __str__(self): return f'已经烤了{self.potato_time}时间,地瓜的状态:{self.potato_state},添加的佐料有:{self.potato_condiments}' # 2、创建对象 digua1 = SweetPotato() print(digua1) digua1.cook(2) print(digua1) digua1.cook(2) digua1.add_condition('蜂蜜') print(digua1)
2、搬家具
# 1、声明家具类&房屋类 class house(): def __init__(self, address, area): self.address = address self.area = area self.remains_area = area self.furniture = [] def __str__(self): return f"房屋地址:{self.address}、房屋占地面积:{self.area}、房屋剩余面积:{self.remains_area}、屋内家具{self.furniture}" def add_furniture(self, item): if item.area <= self.remains_area: self.furniture.append(item.name) self.remains_area -= item.area print('家具添加成功') else: print(f'家具\t{item.name}\t添加失败') class furnitures(): def __init__(self, name, area): self.name = name self.area = area # 2、创建对象 shafa = furnitures('沙发', 20) lanqiuchang = furnitures('篮球场', 100) fanzi = house('郑州', 100) print(fanzi) fanzi.add_furniture(shafa) fanzi.add_furniture(lanqiuchang) print(fanzi)
在面向对象初步的学习中,感受到 面向对象 与 c语言结构体 的明显差异
面向对象 除了属性以外,还具有行为(函数)
结构体 VS 类
结构体是值类型 类是引用类型
结构体是栈(相对小,访问效率高)存储 类是堆(相对大,访问效率低)存储
结构体赋的是值 类赋的是对象地址
存在不足,请多指教

浙公网安备 33010602011771号