<p>您正在混合属性和方法。
“speed”应该是类的一个属性,而“accelerate”应该是修改该属性的方法。
一些代码来说明我的意思。在</p>
<pre><code>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()
</code></pre>
<p>给出:</p>
^{pr2}$
<p>。。。在</p>
<p>你不是一个基类,但不是类的子类。在</p>