2013-11-26 107 views
-5

請參閱下面的問題 -學習Python困難的方法練習40個一類查詢

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. 在這兩個閃避,我看到歌詞(3號線,5和6)。爲什麼?那裏真的發生了什麼?

  2. 該班的名字是宋。在第8行和第11行,變量右側有「Song」。爲什麼?我真的不明白。

  3. 將歌詞放在一個單獨的變量中,然後將該變量傳遞給該類以代替使用。我會怎麼做?

這對我來說非常重要,因爲我剛剛開始OOP。請耐心等待,並回答上述問題。

+2

此問題未能顯示對Python的最小理解。投票結束。 –

+0

我們應該在代碼示例的右側顯示行號。 –

+1

你真的讀過Zed對發生什麼事情的解釋嗎?他通常很清楚。 –

回答

2

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

  1. 行1至8限定稱爲樂曲。一個類就像創建一個新對象的藍圖。添加到類中的每個函數都將在創建對象時添加到對象中。

  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對象?

+0

非常感謝你回答,而不是像其他人一樣。非常感謝。 –

+0

不用擔心。請記住,那裏有很多Python教程和書籍。如果不清楚,請嘗試關於同一主題的另一個教程。我推薦[Python教程](http://docs.python.org/3.3/tutorial/)。更重要的是,**嘗試**來看看有效或無效。我認爲這是擱置這個問題的重要原因 - 你沒有表明你先試過任何東西。 –

+0

幾個月後,我只想說這個答案,謝謝。它實際上有助於練習(Learn Python Hard Way可能會讓人困惑,它會讓你輸入一些東西,但往往只是繼續前進而不解釋原因)。那些關於原始問題的評論是無益的 - 特別是像我這樣的Python初學者。 –