строка переменной-члена обрабатывается как Tuple в Python

В настоящее время я изучаю Python с помощью CodeAcademy. Моя проблема может быть связана с их веб-приложением, но мое подозрение в том, что я просто ошибаюсь на очень фундаментальном уровне.

Если вы хотите следовать, я имею в виду CodeAcademy.com -> Python -> Classes 6/11

Мой код выглядит так:

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 

Предполагается, что происходит, что каждая my_car переменная объекта my_car печатается на экране. Я ожидал, что подобное condition , color и model будут рассматриваться как строка, но вместо этого будут рассматриваться как Tuple .

Результат выглядит следующим образом:

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

Это приводит к сбою проверки, потому что CA ожидает «серебро», но код возвращается ('silver',) .

Где ошибка в моем коде на этом?

3 Solutions collect form web for “строка переменной-члена обрабатывается как Tuple в Python”

В вашем __init__ вас есть:

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

как вы определяете кортеж. Измените линии на

  self.model = model self.color = color 

без запятой:

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

против

 >>> a = 2 >>> a 2 

У вас есть запятая после этих атрибутов в вашей функции конструктора.

Удалите их, и вы получите его без кортежа

да, вам нужно удалить запятую из переменных экземпляра. from self.model = model, to self.model = model

Приятно видеть, что вы используете концепцию переменной класса , « condition » – это переменная класса, а « self.model », « self.color », « self.mpg » – это переменные экземпляра.

Python - лучший язык программирования в мире.