2013-12-10 3 views
0

Я изучаю классы с CodeAcademy (Python).Python: CodeAcademy: Classes

Вот инструкции:

Добавьте вторую переменную-член, здоровье, к классу животных, и установите его равным строке «хорошей». Затем создайте двух новых животных: лень и оцелот. (Дайте им любые имена или возрасты, которые вам нравятся.) Идите вперед и распечатайте здоровье своего бегемота, ленивца и оцелота.


Вот мой код:

class Animal(object): 
"""Makes cute animals.""" 
is_alive = True 
health = "Good" 

def __init__(self, name, age): 
    self.name = name 
    self.age = age 

def description(self): 
    print self.name 
    print self.age 
    print self.is_alive 
    print self.health 

hippo = Animal("Mary", 02) 
sloth = Animal("Larry", 03) 
ocelot = Animal("Karry", 04) 

hippo.description() 
sloth.description() 
ocelot.description() 

Код Академия возвращается:.

«К сожалению, попробуйте еще раз Похоже, ваши три животных не у всех есть здоровье "хорошо"."


Однако, когда я ввожу код «Хороший», печатается для всех них. Это выглядит следующим образом:

Мэри Правда Хорошо Ларри Правда Хорошо Karry Правда Хорошо


Что ошибка, что CodeAcademy описывает? Любая помощь или предложения приветствуются в ходе этого процесса обучения.

спасибо заранее.

+1

Он говорит, чтобы установить его в 'good' (нижний регистр г) - у вас есть:' здоровье = «Хорошо» '.... Вы не возражаете, предоставляя ссылку на этот пример на CodeAcademy .. –

+0

http://www.codecademy.com/courses/python-intermediate-en-WL8e4/1/4?curriculum_id=4f89dab3d788890003000096 – user3055848

+1

CodeAcademy очень хорош (;)), но одним из его недостатков является то, что он интерпретирует вывод очень буквально. Так что @JonClements выше правильно. Кроме того, по моему опыту, это очень распространенная проблема, с которой начинающие сталкиваются с этими учебниками. С другой стороны, при программировании каждая деталь имеет значение, поэтому, возможно, это не недостаток, и он учит очень хороший урок о том, чтобы обратить внимание на детали. – BartoszKP

ответ

0

Вы заглавили первое письмо: «Хорошо». Попробуйте "хорошо".

Также вы устанавливаете переменную класса в области класса. В Python вы хотите установить self.health = "good" для переменной-члена. Если вы определяете переменные под class Class, они будут находиться в классе и будут глобальными по всем экземплярам.

0

Я закончил Codecedemy, это мой код.

class Animal(object): 
"""Makes cute animals.""" 
    is_alive = True 
    health = "good" 
    def __init__(self, name, age): 
     self.name = name 
     self.age = age 
     # Add your method here! 
    def description(self): 
     print self.name 
     print self.age  
hippo = Animal("Bob",100) 
sloth = Animal("Sam", 1000000) 
ocelot = Animal("Katherine", 3) 
print hippo.is_alive, hippo.description 
print hippo.health 
print sloth.health 
print ocelot.health