"""
这段代码是检查汽车是否启动,其中pump method好像不起作用,要让pressure>0,车子才能启动,应该怎么修改
"""
class Car:
def __init__(self,VIN,engine,tires):
self.VIN=VIN
self.engine=engine
self.tires=tires
class Tires:
def __init__(self,size):
self.size=size
self.pressure=0
def get_pressure(self):
return self.pressure
def pump(self,psi):
self.pressure=psi
class Engine:
def __init__(self,fuel_type):
self.fuel_type=fuel_type
self.state='off'
def start(self):
self.state = 'on'
def stop(self):
self.state = 'off'
def get_state(self):
return self.state
city_tires=Tires(15)
off_road_tires=Tires(18)
electric_engine=Engine('electric')
petrol_engine=Engine('petrol')
city_car=Car('111A',electric_engine,city_tires)
all_terrain_car=Car('888S',petrol_engine,off_road_tires)
print('All-terrain car engine is', all_terrain_car.engine.get_state())
all_terrain_car.tires.pump(10)
all_terrain_car.engine.start()
print('All-terrain car engine is', all_terrain_car.engine.get_state())
all_terrain_car.engine.stop()
print('All-terrain car engine is', all_terrain_car.engine.get_state())
all_terrain_car.engine.start()
print('All-terrain car engine is', all_terrain_car.engine.get_state())
print(all_terrain_car.tires.get_pressure())
print('City car engine is', city_car.engine.get_state())
city_car.engine.start()
print('City car engine is', city_car.engine.get_state())
city_car.engine.stop()
print('City car engine is', city_car.engine.get_state())
Composition 和 Inheritance
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
5条回答 默认 最新
- CSDN专家-showbo 2022-07-12 21:31关注
class Car: def __init__(self,VIN,engine,tires): self.VIN=VIN self.engine=engine self.tires=tires self.engine.tires=tires#动态给这辆车的引擎添加关联的轮胎,因为要判断胎压,需要在引擎中检查胎压,建立联系 class Tires: def __init__(self,size): self.size=size self.pressure=0 def get_pressure(self): return self.pressure def pump(self,psi): self.pressure=psi class Engine: def __init__(self,fuel_type): self.fuel_type=fuel_type self.state='off' def start(self): if self.tires.pressure>0:#这里获取动态添加的引擎关联的轮胎胎压进行判断 self.state = 'on' def stop(self): self.state = 'off' def get_state(self): return self.state city_tires=Tires(15) off_road_tires=Tires(18) electric_engine=Engine('electric') petrol_engine=Engine('petrol') city_car=Car('111A',electric_engine,city_tires) all_terrain_car=Car('888S',petrol_engine,off_road_tires) print('All-terrain car engine is', all_terrain_car.engine.get_state()) all_terrain_car.tires.pump(10) all_terrain_car.engine.start() print('All-terrain car engine is', all_terrain_car.engine.get_state()) all_terrain_car.engine.stop() print('All-terrain car engine is', all_terrain_car.engine.get_state()) all_terrain_car.engine.start() print('All-terrain car engine is', all_terrain_car.engine.get_state()) print(all_terrain_car.tires.get_pressure()) print('City car engine is', city_car.engine.get_state()) city_car.engine.start() print('City car engine is', city_car.engine.get_state()) city_car.engine.stop() print('City car engine is', city_car.engine.get_state())
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
- ¥15 Vue3地图和异步函数使用
- ¥15 C++ yoloV5改写遇到的问题
- ¥20 win11修改中文用户名路径
- ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
- ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
- ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
- ¥15 帮我写一个c++工程
- ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
- ¥15 关于smbclient 库的使用