在Python中使用继承创建派生类并实现Motorcycle类实例操作
基于Motorcycle基类创建派生类并实现操作的Python示例
没问题,我来帮你搞定这个需求!首先咱们先把给定的Motorcycle基类补全(原来的代码里sidecar方法没写完),然后基于它创建派生类,再完成创建对象、设置速度、加速和检查边车状态的操作。
步骤1:完善基类Motorcycle
首先补全基类,新增当前速度属性和检查边车状态的方法:
class Motorcycle: maxspeed = 0 minspeed = 0 sidecar = "" current_speed = 0 # 新增当前速度属性,用于速度控制 def __init__(self, maxspeed, minspeed, sidecar): self.maxspeed = maxspeed self.minspeed = minspeed self.sidecar = sidecar self.current_speed = minspeed # 初始化当前速度为最低速度 def get_sidecar_status(self): # 实现检查边车状态的方法 return f"该摩托车{'带有' if self.sidecar else '没有'}边车"
步骤2:创建派生类
咱们创建一个SportMotorcycle派生类,继承基类的所有特性,同时实现设置速度、加速的方法:
class SportMotorcycle(Motorcycle): def set_speed(self, speed): # 设置速度,确保在最大和最小速度区间内 if self.minspeed <= speed <= self.maxspeed: self.current_speed = speed print(f"速度已设置为 {speed} km/h") else: print(f"无法设置速度:速度必须在 {self.minspeed} - {self.maxspeed} km/h 之间") def accelerate(self, increment): # 加速操作,自动处理速度边界 new_speed = self.current_speed + increment if new_speed > self.maxspeed: self.current_speed = self.maxspeed print(f"已达到最大速度 {self.maxspeed} km/h,无法继续加速") elif new_speed < self.minspeed: self.current_speed = self.minspeed print(f"已达到最小速度 {self.minspeed} km/h,无法继续减速") else: self.current_speed = new_speed print(f"加速 {increment} km/h 后,当前速度为 {self.current_speed} km/h")
步骤3:创建对象并执行操作
现在创建两个Motorcycle对象,执行要求的所有操作:
# 创建第一个对象:带边车的巡航摩托 cruise_bike = SportMotorcycle(maxspeed=180, minspeed=0, sidecar=True) # 创建第二个对象:无边车的运动摩托 sport_bike = SportMotorcycle(maxspeed=250, minspeed=0, sidecar=False) # 操作第一个对象 print("=== 操作巡航摩托 ===") print(cruise_bike.get_sidecar_status()) cruise_bike.set_speed(60) cruise_bike.accelerate(40) cruise_bike.accelerate(90) # 测试超过最大速度的情况 # 操作第二个对象 print("\n=== 操作运动摩托 ===") print(sport_bike.get_sidecar_status()) sport_bike.set_speed(100) sport_bike.accelerate(120) sport_bike.accelerate(40) # 再次加速到最大速度
运行结果
执行上述代码后,会输出以下内容:
=== 操作巡航摩托 === 该摩托车带有边车 速度已设置为 60 km/h 加速 40 km/h 后,当前速度为 100 km/h 已达到最大速度 180 km/h,无法继续加速 === 操作运动摩托 === 该摩托车没有边车 速度已设置为 100 km/h 加速 120 km/h 后,当前速度为 220 km/h 加速 40 km/h 后,当前速度为 250 km/h
说明
- 派生类
SportMotorcycle完全继承了基类的属性和方法,同时扩展了速度控制的功能。 get_sidecar_status方法专门用来检查并返回边车状态,满足需求要求。- 所有速度操作都会自动校验是否在允许的区间内,避免出现不合理的速度值。
内容的提问来源于stack exchange,提问作者erica.michelle.86
相关产品推荐
相关产品推荐

