我在解决这个问题上遇到了困难。我得到了两个不同的代码,这就是我遇到麻烦的地方。我在第38行得到一个错误,是"UnboundLocalError:局部变量'year‘在赋值前引用“我不太确定我做错了什么,我是新手,但是非常感谢任何帮助。
class Car:
def __init__(self, year_model, make, speed):
self.__year_model = year_model
self.__make = make
self.__speed = 0
############# year_model################
def setYear_model(self, year_model):
self.__year_model = year_model
def getYear_model(self):
return self.__year_model
############# Make################
def setMake(self, make):
self.__make = make
def getMake(self):
return self.make
############# speed################
def set_Speed(self, speed):
if speed < 0:
print("Speed cannot be negative")
else:
self.__speed = speed
def get_Speed(self):
return self.__speed
############# str ############
def __str__(self):
return "Make : " + self.__make + ", Model Year :" + \
self.__year_model + ", speed =" + str(self.__speed)
def accelerate(self):
self.__speed = self.__speed +5
def brake(self):
self.__speed = self.__speed -5
def main():
year=(input('car year: '))
make=(input('car make: '))
speed=0
my_car = Car(year, make, speed)
print('Current speed is', speed)
#accelerate 5 times
my_car.accelerate()
print('My current speed:',my_car.get_speed())
my_car.accelerate()
print('My current speed:',my_car.get_speed())
my_car.accelerate()
print('My current speed:',my_car.get_speed())
my_car.accelerate()
print('My current speed:',my_car.get_speed())
my_car.accelerate()
print('My current speed:',my_car.get_speed())
#brake five times
my_car.brake()
print('My current speed after brake:',my_car.get_speed())
my_car.brake()
print('My current speed after brake:',my_car.get_speed())
my_car.brake()
print('My current speed after brake:',my_car.get_speed())
my_car.brake()
print('My current speed after brake:',my_car.get_speed())
my_car.brake()
print('My current speed after brake:',my_car.get_speed())
main()然后将其连接到此代码。
import ct_CarDefinition
def main():
# Create an instance of Car
my_car = ct_CarDefinition.Car("2008", "Honda Accord")
print(my_car)
main()发布于 2014-12-18 12:52:04
试试这个:
def main():
year=(input('car year: '))
make=(input('car make: '))
speed=0
my_car = Car(year, make, speed) #use this once you have assigned values for "year", "make", "speed"另外,在您的类定义中更改以下内容:
class Car:
def __init__(self, year_model, make, speed): #add "speed" parameter
self.__year_model = year_model
self.__make = make
self.__speed = 0 而且,您没有在您的Car类中定义"accelerate“和"brake”方法。因此,使用my_car.accelerate()或my_car.brake()将抛出错误:
AttributeError: Car instance has no attribute 'accelerate'您可以向Car类添加以下方法:
############# accelerate ################
def accelerate(self):
self.__speed = self.__speed +5
############# brake ################
def brake(self):
self.__speed = self.__speed -5另外,在main方法中调用set_speed和get_speed时,请将名称更改为这两个方法。
############# speed################
def set_speed(self, speed):
if speed < 0:
print("Speed cannot be negative")
else:
self.__speed = speed
def get_speed(self):
return self.__speed输出:
#car year: 1998
#car make: "Honda Accord"
#('Current speed is', 0)
#('My current speed:', 5)
#('My current speed:', 10)
#('My current speed:', 15)
#('My current speed:', 20)
#('My current speed:', 25)
#('My current speed after brake:', 20)
#('My current speed after brake:', 15)
#('My current speed after brake:', 10)
#('My current speed after brake:', 5)
#('My current speed after brake:', 0)https://stackoverflow.com/questions/27539399
复制相似问题