2016-06-22 2 views
0

Итак, я пытаюсь изучить python из книги, которая учит вас, инструктируя вас о том, как создать текстовую приключенческую игру. Единственная проблема заключается в том, что я использую python 2.7, а книга написана на python 3. Мне удалось пройти до сих пор, но я столкнулся с проблемой с этим кодом.Изменение класса из python 3 в python 2.7

class Person : 
    age = 15 
    name = "Rolf" 
    favorite_foods = ["beets", "Turnips", "Weisswurst"] 

    def birth_year() : 
     return 2015 - age 

Я не хочу, чтобы вы это исправить, я просто хочу, чтобы ты мне, Что отличается об этом, что я должен изменить, чтобы заставить его работать с 2.7, так что я могу исправить это сам.

+2

Я настоятельно рекомендую либо модернизировать до 3.X, либо найти учебник 2.7. Попытка использовать его для изучения другого приведет к болью и разочарованию без большой отдачи. – Kevin

+3

Этот код не работает ни в одной из версий python, ему понадобится 'return 2015 - Person.age' –

+9

Если книга говорит вам хранить имя и возраст в качестве переменных класса, выкиньте его и найдите настоящую книгу. – jwodder

ответ

0

Хотя я бы согласился с вышеприведенными комментариями, что эта книга кажется очень подозрительной, я могу предложить немного подсказки о том, как двигаться вперед.

  1. Помните, что классы преднамеренно динамичны, постоянные переменные являются точными, но выполняют вашу инициализацию внутри функции __init__():.
  2. Функции объекта нуждаются в объекте, переданном им, функции класса требуют класса, переданного им. This - отличный ресурс о том, как вы должны использовать функции внутри классов. def birth_year(self): - хорошее место для начала
  3. И, наконец, переменные определяются только в пределах их объема. Короче говоря, вы не сможете штрафовать age вне класса. Используйте оператор точки, чтобы указать, что что-то попадает в определенную область. В этом контексте попробуйте self.age при условии, что вы указали рекомендацию 2.

Надеюсь, это поможет вам начать работу! Лучше всего удачи, объекты могут быть немного сложными, чтобы сначала обернуть голову.

Смежные вопросы