I am just starting to learn python and am getting confused about how to pass an instance of an object as an argument for a function, below is a little bit of code I made for practice and the basic idea is that there is one garage, this garage contains no cars, and you can add cars to the garage and view their details.
class Garage:
cars = []
def add_car(self, car):
cars.append(car)
class Car:
car_name, car_price, car_colour, car_miles, car_owners = "", "", "", "", ""
def add_new_car(self, garage, name, price, colour, miles, owners):
car_name = name
car_price = price
car_colour = colour
car_miles = miles
car_owners = owners
garage.add_car(self)
def main(argv=None):
your_garage = Garage()
while True:
print "Your garage contains %d cars!" % len(your_garage.cars)
print "1) Add a new car\n2) View your car's\n0) Leave the garage"
user_input = raw_input("Please pick an option: ")
if user_input == "1":
add_car(your_garage)
elif user_input == "2":
view_cars(your_garage)
elif user_input == "0":
quit()
def add_car(garage):
name = raw_input("Name: ")
price = raw_input("Price: ")
colour = raw_input("Colour: ")
miles = raw_input("Miles: ")
owners = raw_input("Owners: ")
car = Car()
car.add_new_car(garage, name, price, colour, miles, owners)
def view_cars(garage):
for x in xrange(len(garage.cars)):
print garage.cars[x].car_name
print garage.cars[x].car_price
print garage.cars[x].car_colour
print garage.cars[x].car_miles
print garage.cars[x].car_owners
if __name__ == "__main__":
main()
My code might be very wrong or there might be an easy way to do this, I the way I pictured it was going to be that the new instance of car I created would be passed into the add_car() function in Garage so that it can be added to the list of cars. How can I do this?