请参阅以下问题 -
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()
在def中,我看到歌词(第3,5和6行)。为什么?那里到底发生了什么?
该课程的名称是Song。在第8行和第11行,变量右侧有“Song”。为什么?我真的不明白。
将歌词放在单独的变量中,然后将该变量传递给要使用的类。我该怎么做?
这对我来说非常重要,因为我刚开始OOP。请耐心等待,并回答上述问题。
答案 0 :(得分:2)
首先,链接到original example是一个好主意。我正在使用原始示例中的行号。
第1行到第8行定义了一个名为Song的类。类就像制作新对象的蓝图一样。在创建对象时,添加到类中的每个函数都将添加到对象中。
Song
位于第10行和第14行的右侧,因为您正在制作新的Song对象,并将它们放入变量中。您甚至不需要将Song对象放在变量中。以下工作正常:
Song(["Do","Re","Mi"]).sing_me_a_song()
这有什么区别:
print("Hi!")
这个?
message = "Hi!"
print(message)
在直接传递值的那个中,在另一个传递包含该值的变量。就像"Hi!"
是一个值一样,["Do","Re","Mi"]
也是一个值。如何将第二个值传递给新的Song对象?