2015-11-11 2 views
-5

Итак, я использую самый сложный способ изучения python, и я нахожусь в упражнении 40, а ниже - код, который нам поручено записать в файл с именем ex40.py:Изучение того, как писать класс и объект в первый раз

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() 

Затем, чтобы запустить его, я делаю: питон ex40.py и я получаю сообщение об ошибке:

MacBook-Pro-3:PythonsScripts$ python ex40.py 

Traceback (most recent call last): 
    File "ex40.py", line 12, in <module> 
    "So I'll stop right there"]) 
TypeError: object() takes no parameters 
+2

Возможные дубликатом [создания объекта Python] (http://stackoverflow.com/questions/1164309/python-object-creation) –

+2

@AlbertoBonsanto Nope. Это всего лишь типографская ошибка. Этот вопрос задает совершенно другое. –

+2

первое правило отладки: искать ошибки в вашем коде (подсказка: TypeError говорит вам, где искать) – miraculixx

ответ

3

Вы должны иметь два подчеркивает вокруг магических методов, таких как __init__. Это означает, что это:

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

должны стать это:

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

, как только это позволит мне тоже =) – aznjonn

1

_init_ функция должна быть __init__.

Я также могу видеть, только с подсветкой синтаксиса, что последняя строка используется в файле отсутствует начиная двойные кавычки

+1

Спасибо, я думаю Я пропустил эту цитату, когда я ее скопировал. я действительно имею его в фактическом файле – aznjonn

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