-2
lyrics_bdayに属性の歌詞を設定するとコードが正常に機能し、lyric_bullsまたはlyrics_tamashaの場合はNameErrorが返されます。どうしてこんなことに?NameErrorのあいまいさ:
class Song(object):
def __init__(self, lyrics):
#self.lyrics is the instance while lyrics is the attribute
self.lyrics = lyrics_bday
def sing_me_a_song(self):
for line in self.lyrics:
print line
lyrics_bday = ["\n Happy Birthday to you", "\n I dont want to get sued", "\n So I'll stop here"]
happy_bday = Song(lyrics_bday) #passing the variable to class
lyrics_bulls = ["\n They rally around the family", "\n With pockets full of shells"]
bulls_on_parade = Song(lyrics_bulls)
lyrics_tamasha = ["\n Pal bhar sambhal jao", "\ndil ko kaise samjhaun", "\nAgar tum sath ho"]
agar_tum_sath_ho = Song(lyrics_tamasha)
happy_bday.sing_me_a_song()
bulls_on_parade.sing_me_a_song()
「__init__」は、それを使用しない場合、なぜ「歌詞」引数を取るのですか? –
'__init__'に' self.lyrics = lyrics'を使用してください – Gahan
ハッピーバースデーはパブリックドメインになりました。あなたはもう訴えられません。 – Barmar