Car Class Python Program
Car Class Python Program
Your code has several problems:
-
You have not created an instance:
mycar = Car(year, make, speed)
-
You have renamed
mycar
tomy_car
: iemy_car.brake()
-
The class attribute is called
self.__speed
, it is not calledself.speed
.(accelerate, brake and get_speed methods)
class Car:
def __init__(self, year, make, speed):
self.__year_model = year
self.__make = make
self.__speed = 0
def set_year_model(self, year):
self.__year_model = year
def set_make(self, make):
self.__make = make
def set_speed(self, speed):
self.__speed = 0
def get_year_model(self):
return self.__year_model
def get_make(self):
return self.__make
def get_speed(self):
return self.__speed
#methods
def accelerate(self):
self.__speed +=5
def brake(self):
self.__speed -=5
def get_speed(self):
return self.__speed
def main():
year = input(Enter the car year: )
make = input(Enter the car make: )
speed = 0
mycar = Car(year, make, speed)
#Accelerate 5 times
mycar.accelerate()
print(The current speed is: , mycar.get_speed())
mycar.accelerate()
print(The current speed is: , mycar.get_speed())
mycar.accelerate()
print(The current speed is: , mycar.get_speed())
mycar.accelerate()
print(The current speed is: , mycar.get_speed())
mycar.accelerate()
print(The current speed is: , mycar.get_speed())
#Brake 5 times
mycar.brake()
print(The current speed after brake is: , mycar.get_speed())
mycar.brake()
print(The current speed after brake is: , mycar.get_speed())
mycar.brake()
print(The current speed after brake is: , mycar.get_speed())
mycar.brake()
print(The current speed after brake is: , mycar.get_speed())
mycar.brake()
print(The current speed after brake is: , mycar.get_speed())
#Call the main function
main()
This code should work for you:
def makeCarClass():
def initialize(self, model, color, currSpeed, maxSpeed, mpg, currFuel, mileage):
self[model] = model
self[color] = color
self[currSpeed] = currSpeed
self[maxSpeed] = maxSpeed
self[mpg] = mpg
self[currFuel] = currFuel
self[mileage] = mileage
return self
def changeSpeed(self, amount):
newSpeed = self[currSpeed] + amount
if newSpeed >= self[maxSpeed]:
self[currSpeed] = self[maxSpeed]
elif newSpeed <=0:
self[currSpeed] = 0
else:
self[currSpeed] = newSpeed
def move(self, miles):
fuelNeeded = miles/self[mpg]
currFuel = self[currFuel]
if currFuel <= fuelNeeded:
self[currFuel] = 0
self[mileage] = self[mileage] + currFuel * self[mpg]
print(Warning: Your car has run out of fuel)
else:
self[currFuel] = currFuel - fuelNeeded
self[mileage] = self[mileage] + miles
return {initialize:initialize, changeSpeed:changeSpeed, move:move}
carClass = makeCarClass()
car1 = carClass[initialize]({},Ferrari, yellow, 0, 200, 10, 40, 0)
car2 = carClass[initialize]({},Honda, black, 0, 120, 30, 40, 0)
print(car1)
Car Class Python Program
class Car:
def __init__(self,year,make):
self.__year_model=year
self.__make=make
self.__speed=0
def accelerate(self):
self.__speed +=5
def brake(self):
self.__speed -=5
def get_speed(self):
return self.__speed
new file
import car
def main():
my_car = car.Car(2019,Toyota)
for i in range(5):
my_car.accelerate()
print(Speed = ,my_car.get_speed())
for i in range(5):
my_car.brake()
print(Speed = ,my_car.get_speed())
main()