You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:06:10