2013-11-26 1 views
-5

Пожалуйста, обратите внимание на вопросы ниже -Learn Python Hard Way Упражнение 40 класса запросов

class Song(object): 

    def __init__(self, lyrics): 
     self.lyrics = lyrics 

    def sing_me_a_song(self): 
     for line in self.lyrics: 
      print line 

happy_bday = Song(["Happy birthday to you", 
        "I don't want to get sued", 
        "So I'll stop right there"]) 

bulls_on_parade = Song(["They rally around the family", 
         "With pockets full of shells"]) 

happy_bday.sing_me_a_song() 

bulls_on_parade.sing_me_a_song() 
  1. В обоих опр я вижу текст (строка 3, 5 и 6). Зачем? Что на самом деле происходит там?

  2. Название класса - Песня. В строке 8 и 11 в правой части переменной есть «Песня». Зачем? Я действительно не понимаю.

  3. Поместите тексты в отдельную переменную, а затем передайте эту переменную классу, который будет использоваться вместо него. Как мне это сделать?

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

+2

Этот вопрос не показывает минимальное понимание Python. Проголосовал за закрытие. –

+0

Мы должны _really_ иметь номера строк справа от образца кода. –

+1

Вы действительно прочитали объяснение Зеда о том, что происходит? Он, как правило, очень ясен. –

ответ

2

Во-первых, ссылка на original example - хорошая идея. Я использую номера строк из исходного примера.

  1. Линия 1 до 8 определяет класса под названием Song. Класс точно подобен чертежу для создания нового объекта. Каждая функция, которую вы добавляете в класс, будет добавлена ​​к объекту при создании объекта.

  2. Song находится в правой части строки 10 и 14, потому что вы создаете новые объекты Песни и помещаете их в переменные. Вам даже не нужно помещать объект Song внутри переменной. Ниже будет работать нормально:

    Song(["Do","Re","Mi"]).sing_me_a_song()

  3. В чем разница между этим:

    print("Hi!")

    А это?

    message = "Hi!"

    print(message)

    В одном вы передаете значение непосредственно, а в другой вы передаете переменную, содержащую значение. Точно так же, как "Hi!" - значение, ["Do","Re","Mi"] - тоже значение. Как бы вы передали второе значение новому объекту песни?

+0

Огромное вам спасибо за ответ, а не как остальные. Спасибо, действительно. –

+0

Не беспокойтесь об этом. Помните, что есть много учебников и книг Python. Если не ясно, попробуйте еще один учебник по той же теме. Я рекомендую [учебник по Python] (http://docs.python.org/3.3/tutorial/). Еще более важно, ** попробовать вещи **, чтобы увидеть, что работает или не работает. Я думаю, что это большая причина, по которой вопрос был приостановлен - вы не показали, что сначала вы что-то пробовали. –

+0

Много месяцев спустя я просто хотел бы поблагодарить за этот ответ. Это действительно помогло с упражнением (Learn Python Hard Way может быть запутанным, он заставляет вас вводить вещи, но часто просто движется дальше, не объясняя почему). Комментарии там по оригинальному вопросу бесполезны - особенно для начинающих Python, таких как я. –