строка переменной-члена обрабатывается как 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',) .

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

  • Почему аргумент ключевого слова metaclass определения класса принимает вызываемый?
  • переменные python, классы
  • Определение «boolness» класса в python
  • super () вызывает «TypeError: должен быть тип, а не classobj» для класса нового стиля
  • какая разница между dir (self) и self .__ dict__
  • Подсчет экземпляров класса?
  • Может ли кто-нибудь помочь конденсировать этот код Python?
  • Передача self.var (атрибут экземпляра) в качестве параметра метода по умолчанию
  • 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 » – это переменные экземпляра.

    Interesting Posts

    python: изменить рабочий каталог скриптов в собственный каталог скрипта

    Модуль JSON для python 2.4?

    График графика графика и график времени на разных осях с использованием панд

    Как я могу «посмотреть» файл для изменения / изменения?

    Как добавить конечную косую черту для приложения для категоризации Django MPTT?

    Обновление строки в SqlAlchemy ORM

    почему python не может распаковать защищенный паролем zip-файл, созданный winrar, используя zip-метод?

    Django: отображает список из многих-многих элементов в интерфейсе администратора

    Проблема с большими запросами: GET не выпускает / не перезапускает TCP-соединения, сбои цикла

    Как добавить миниатюру в сообщение WordPress с помощью библиотеки xmlrpclib Python?

    Есть ли какой-либо API-интерфейс python, который может получить IP-адрес (внутренний или внешний) виртуальной машины в Azure

    Как заполнить поле выбора wtform с помощью mongokit / pymongo?

    Установите ошибку возврата mysql-python в CentOs

    Шифрование / дешифрование данных в питоне с солью

    Почему -1/2 оценивается как 0 в C ++, но -1 в Python?

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