在Python中使用继承创建派生类

2024-10-01 17:34:49 发布

您现在位置:Python中文网/ 问答频道 /正文

从基类创建派生类,然后在Python程序中使用该派生类。程序应该创建两个摩托车对象,然后设置摩托车的速度,加速摩托车对象,并检查其侧车状态。 必须使用以下类来运行该类:

class Motorcycle: 

    maxspeed = 0
    minspeed = 0
    sidecar = ""

    def __init__(self, maxspeed, minspeed, sidecar):
        self.maxspeed = maxspeed
        self.minspeed = minspeed
        self.sidecar = sidecar
    def sidecar(self):
        self.get_sidecar = True
        return self.get_sidecar
    def speed(self, speed):
        self.speed = self.minspeed + self.accelerate
        return self.speed

    def accelerate(self, accelerate):
        self.accelerate = accelerate
        if (self.accelerate + self.minspeed) > self.maxspeed:
            print("This motorcycle cannot go that fast")

以下课程:

^{pr2}$

我一直收到这条消息,用于检索速度:is bound method。。。。。。 我不知道该怎么办,如果有人能提供任何建议,我将不胜感激。在


Tags: 对象self程序getreturn状态def基类
2条回答

您正在混合属性和方法。 “speed”应该是类的一个属性,而“accelerate”应该是修改该属性的方法。 一些代码来说明我的意思。在

class Motorcycle:

    def __init__(self, maxspeed, minspeed, sidecar):
        self.maxspeed = maxspeed
        self.minspeed = minspeed
        self.speed = minspeed # Initial speed is equal to minspeed
        self.sidecar = sidecar

    # Printing methods
    # Print sidecar status
    def has_sidecar(self):
        if self.sidecar:
            print("This motorcycle has a sidecar")
        else:
            print("This motorcycle does not have a sidecar")
    # Print speed
    def how_fast(self):
        print ("The current speed of this motorcycle is {}".format(self.speed))

    # Methods to change your sidecar status:
    def add_sidecar(self):
        self.sidecar = True
    def remove_sidecar(self):
        self.sidecar = False
    # Method to accelerate
    def accelerate(self, accelerate):
        if (self.speed + accelerate) > self.maxspeed:
            print("This motorcycle cannot go that fast")
        else:
            self.speed += accelerate

motorcycleOne = Motorcycle(90.0, 65.0, True)
motorcycleTwo = Motorcycle(85.0, 60.0, False)

motorcycleOne.accelerate(30.0)
motorcycleTwo.accelerate(20.0)

motorcycleOne.how_fast()
motorcycleTwo.how_fast()

motorcycleOne.has_sidecar()
motorcycleTwo.has_sidecar()

给出:

^{pr2}$

。。。在

你不是一个基类,但不是类的子类。在

speed和{}都是方法;您需要调用它们。在

print("The current speed of motorcycleOne is " + motorcycleOne.speed())

注意,您似乎没有按照说明创建基类和派生类。在

相关问题 更多 >

    热门问题