【问题标题】:Using Inheritance to Create a Derived Class in Python在 Python 中使用继承创建派生类
【发布时间】:2018-04-01 22:05:29
【问题描述】:

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

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")

下课:

from Motorcycle import Motorcycle

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

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

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

if motorcycleOne.sidecar:
   print("This motorcycle has a sidecar")
else:
   print("This motorcycle does not have a sidecar")

if motorcycleTwo.sidecar:
   print("This motorcycle has a sidecar")
else:
   print("This motorcycle does not have a sidecar")

我不断收到这条消息以检索速度:绑定方法...... 如果有人可以提供任何建议,我不知道从哪里开始,我将不胜感激。

【问题讨论】:

    标签: python class object inheritance


    【解决方案1】:

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

    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()
    

    给予:

    This motorcycle cannot go that fast
    The current speed of this motorcycle is 65.0
    The current speed of this motorcycle is 80.0
    This motorcycle has a sidecar
    This motorcycle does not have a sidecar
    

    ...

    但是你不是从基类继承一个类。

    【讨论】:

      【解决方案2】:

      speedsidecar 都是方法;你需要给他们打电话。

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

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

      【讨论】:

        猜你喜欢
        • 2012-12-10
        • 1970-01-01
        • 1970-01-01
        • 2020-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-20
        • 1970-01-01
        相关资源
        最近更新 更多