member variable string gets treated as Tuple in Python

I am currently learning Python with the help of CodeAcademy. My problem may be related to their web application, but my suspicion is I am just wrong on a very fundamental level here.

If you want to follow along I am referring to CodeAcademy.com -> Python -> Classes 6/11

My code looks like this:

class Car(object):
    condition = "new"
    def __init__(self, model, color, mpg):
        self.model = model,
        self.color = color,
        self.mpg = mpg

my_car = Car("DeLorean", "silver", 88)
print my_car.model
print my_car.color
print my_car.mpg
print my_car.condition

What is suppossed to happen, is, that every member variable of the object my_car gets printed on screen. I was expecting that like condition, color and model would be treated as a string, but instead get treated as a Tuple.

The output looks like this:

('DeLorean',) #Tuple
('silver',) #Tuple
88 
new #String
None

Which leads to the validation failing, because CA expects "silver" but the code returns ('silver',).

Where is the error in my code on this?


Solution 1:

In your __init__, you have:

    self.model = model,
    self.color = color,

which is how you define a tuple. Change the lines to

    self.model = model
    self.color = color

without the comma:

>>> a = 2,
>>> a
(2,)

vs

>>> a = 2
>>> a
2

Solution 2:

You've got a comma after those attributes in your constructor function.

Remove them and you'll get it without a tuple