la cadena de la variable miembro se trata como Tuple en Python

Actualmente estoy aprendiendo Python con la ayuda de CodeAcademy. Mi problema puede estar relacionado con su aplicación web, pero mi sospecha es que estoy equivocado en un nivel muy fundamental aquí.

Si quieres seguirlo, me refiero a CodeAcademy.com -> Python -> Clases 6/11

Mi código se ve así:

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 

Lo que se supone que sucederá es que cada variable miembro del objeto my_car se imprime en la pantalla. Esperaba que la condition similar, el color y el model se trataran como una cadena, pero en lugar de eso, se trataran como una Tuple .

La salida se ve así:

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

Lo que lleva a la falla de validación, porque CA espera “plata” pero el código devuelve ('silver',) .

¿Dónde está el error en mi código en esto?

En tu __init__ , tienes:

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

que es como se define una tupla. Cambiar las lineas a

  self.model = model self.color = color 

sin la coma:

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

vs

 >>> a = 2 >>> a 2 

Tienes una coma después de esos atributos en tu función de constructor.

Retíralos y lo conseguirás sin una tupla.

Sí, tienes que eliminar la coma de las variables de instancia. from self.model = model, to self.model = model

Es bueno ver que está utilizando el concepto de variable de clase , ” condition ” es variable de clase y ” self.model “, ” self.color “, ” self.mpg ” son variables de instancia.