【问题标题】:Learn Python Hard Way Exercise 40 Class Query [closed]学习 Python Hard Way 练习 40 类查询 [关闭]
【发布时间】:2013-11-26 11:54:00
【问题描述】:

请看下面的问题 -

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. 将歌词放在一个单独的变量中,然后将该变量传递给类以代替使用。我该怎么做?

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

【问题讨论】:

  • 这个问题未能显示出对 Python 的最低限度的了解。投票结束。
  • 我们应该真的在代码示例的右侧有行号。
  • 你真的读过 Zed 对正在发生的事情的解释吗?他通常很清楚。
  • 我正在向 Learn Python The Hard Way 学习。据我了解类,它就像一个蓝图,您可以从中创建对象。或者大意的东西。
  • @SocialCoder:什么,就像句子中的你这样做的方式是你把类当成一个函数来调用,像这样:在那一章?全部都在那儿解释清楚,请仔细阅读,然后再重新阅读。

标签: python object self


【解决方案1】:

首先,链接到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 对象?

【讨论】:

  • 非常感谢您的回答,而不是像其他人一样。真的谢谢。
  • 别担心。请记住,那里有很多 Python 教程和书籍。如果不清楚,请尝试有关同一主题的另一个教程。我推荐Python tutorial。更重要的是,尝试一下,看看哪些方法有效,哪些方法无效。我认为这是问题被搁置的重要原因 - 你没有表明你先尝试过任何事情。
  • 几个月后,我只想对这个答案表示感谢。它实际上对练习有所帮助(Learn Python the Hard Way 可能会令人困惑,它会让你输入一些东西,但通常只是继续前进而不解释原因)。原始问题上的 cmets 没有帮助 - 特别是对像我这样的 Python 初学者。
  • 不客气! ==
猜你喜欢
  • 2012-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-25
  • 2015-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多