我很难解决这个问题。我得到了 2 个单独的代码,这就是我遇到麻烦的地方。我在第 38 行收到一个错误,即“UnboundLocalError:赋值前引用的局部变量‘year’”我不确定我做错了什么,我是 Python 的新手,但非常感谢任何帮助。
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()
最佳答案
在将变量设置为任何值之前,您尝试使用变量 year
(同样,make
和 speed
):
my_car = Car(year, make, speed)
year=(input('car year: '))
make=(input('car make: '))
speed=0
除非您能以某种方式读懂用户的想法,否则在询问用户的首选年份和制造商之前,您无法创建 2008 Honda Accord;就你所知,他可能会要一辆 2014 款保时捷 Boxster。因此,只需创建 Car
在您知道要创建什么护理之后。
此外,您尝试将三个参数传递给 Car(year, make, speed)
,但它只需要两个。 Car
始终以 0 速度开始,因此您不必超过它。
year=(input('car year: '))
make=(input('car make: '))
my_car = Car(year, make)
有一些语言,称为数据流编程语言,可以让您像这样创建“不完整的值”,因此 my_car
将是一个有歧义的 Car
,但是只要您在填写 year
、make
和 speed
之前不尝试使用它,就没有人会在意它是否完整。但 Python 不是这样一种语言,您可能使用的大多数其他语言也不是。
关于python - 车类错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27539399/