我的主要代码是这样:
import CarDefinition # <- change ONLY this line to point to your class definition file
def main():
# Create an instance of Car
my_car = CarDefinition.Car("2008", "Honda Accord")
print("my_car after instantiating:\n", my_car)
my_car.setSpeed(2)
print("my_car after my_car.setSpeed(2):\n", my_car)
# Accelerate 5 times
print ("car is accelerating: ")
for i in range(5):
my_car.accelerate()
print ("Current speed: ", my_car.getSpeed())
print()
# Brake 7 times
print ("car is braking: ")
for i in range(7):
my_car.brake()
print ("Current speed: ", my_car.getSpeed())
print("my_car values at program end:\n", my_car)
main()
而我的导入CarDefinition是这个:
class Car:
__year_model = ""
__make = ""
__speed = 0
def __init__(self, year_model, make):
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 setSpeed(self, inp_speed):
if inp_speed < 0:
print("Speed cannot be negative")
else:
self.__speed = inp_speed
def getSpeed(self):
return self.__speed
############# str ############
def __str__(self):
return "Make : " + self.__make + ", Model Year :" + \
self.__year_model + ", speed =" + str(self.__speed)
编辑:文件夹结构在这里显示:Folder Structure picture
我的结果出来是说NameError:名称输入代码“ CarDefinition”未定义。
是的,这是一个作业问题,但我不是来这里要求我完成作业的。我已经看了2天了,我找不到如何超越第5行的方法。我发布的这部分是我要开始使用的默认代码。我只是编写没有问题的Brake和Accelerate函数代码。有人可以帮忙指出我所缺少的吗???顺便说一句,我正在使用python 3.7
我相信您在同一目录中没有文件。
我从两个文件复制了代码,并在文件夹中创建了此结构:
drwxr-xr-x 4 foobar staff 128 Dec 10 20:02 .
drwx------+ 13 foobar staff 416 Dec 10 19:57 ..
-rw-r--r--@ 1 foobar staff 969 Dec 10 19:57 CarDefinition.py
-rw-r--r--@ 1 foobar staff 709 Dec 10 19:59 main.py
然后像下面这样执行main.py文件:
python main.py
这是输出:
('my_car after instantiating:\n', <CarDefinition.Car instance at 0x108512950>)
('my_car after my_car.setSpeed(2):\n', <CarDefinition.Car instance at 0x108512950>)
car is accelerating:
Traceback (most recent call last):
File "main.py", line 27, in <module>
main()
File "main.py", line 14, in main
my_car.accelerate()
AttributeError: Car instance has no attribute 'accelerate'
因此,建议您检查文件的位置,确认它们位于同一文件夹中,然后重试。如果这样做,则无需更改任何代码。玩得开心!
问题在于您尝试创建car实例时的主要功能。您只需要写my_car = Car("2008", "Honda Accord")
而不是my_car = CarDefinition.Car("2008", "Honda Accord")
我已经使用下面给出的主要代码运行了代码,并且运行正常。
def main():
# Create an instance of Car
my_car = Car("2008", "Honda Accord")
print("my_car after instantiating:\n", my_car)
my_car.setSpeed(2)
print("my_car after my_car.setSpeed(2):\n", my_car)
# Accelerate 5 times
print ("car is accelerating: ")
for i in range(5):
#my_car.accelerate()
print ("Current speed: ", my_car.getSpeed())
print()
# Brake 7 times
print ("car is braking: ")
for i in range(7):
#my_car.brake()
print ("Current speed: ", my_car.getSpeed())
print("my_car values at program end:\n", my_car)
main()
我已经注释了加速和制动功能调用,因为您尚未实现它们。
我的两个文件保存在同一目录中。但是由于某种原因,当我将它们复制到新文件夹时,一切都按预期运行。我不知道该如何回答,但这有点让我想起了技术支持,问的第一个问题是“是否插入?”感谢您的帮助。留下一点脸蛋