学习Python艰难的方法练习40类查询

时间:2013-11-26 11:54:00

标签: python object self

请参阅以下问题 -

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. 在def中,我看到歌词(第3,5和6行)。为什么?那里到底发生了什么?

  2. 该课程的名称是Song。在第8行和第11行,变量右侧有“Song”。为什么?我真的不明白。

  3. 将歌词放在单独的变量中,然后将该变量传递给要使用的类。我该怎么做?

  4. 这对我来说非常重要,因为我刚开始OOP。请耐心等待,并回答上述问题。

1 个答案:

答案 0 :(得分:2)

首先,链接到original example是一个好主意。我正在使用原始示例中的行号。

  1. 第1行到第8行定义了一个名为Song的。类就像制作新对象的蓝图一样。在创建对象时,添加到类中的每个函数都将添加到对象中。

  2. Song位于第10行和第14行的右侧,因为您正在制作新的Song对象,并将它们放入变量中。您甚至不需要将Song对象放在变量中。以下工作正常:

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

  3. 这有什么区别:

    print("Hi!")

    这个?

    message = "Hi!"

    print(message)

    在直接传递值的那个中,在另一个传递包含该值的变量。就像"Hi!"是一个值一样,["Do","Re","Mi"]也是一个值。如何将第二个值传递给新的Song对象?