在上面的例子中,我們並沒有在方法中加入任何實際代碼,只有一些註釋來解釋這些方法要做什麼。這是一種未雨綢繆的方法,是對以後要增加的內容提前做出計劃或提前考慮。具體的代碼要取決於遊戲如何工作。程序員編寫比較複雜的代碼時通常就會採用這種做法來組織他們的想法。「空」函數或方法稱為代碼樁(code stub)。
如果想運行前面的例子,會得到一條錯誤消息,因為函數定義不能為空。
沒錯,卡特,不過註釋不起作用,因為它們只是給你讀的,而不是讓計算機來執行。
如果希望建立一個代碼樁,可以使用 Python 的 pass
關鍵字作為一個佔位符。代碼實際上應該像下面這樣:
我不打算再在這一章中給出使用對像、多態和繼承的更詳細的例子。學習這本書後面的內容時還會看到很多關於對像以及如何使用對象的例子。通過在實際的程序(比如遊戲)中使用對象,你會有更深入的理解。
你學到了什麼
在這一章,你學到了以下內容。
什麼是對象。
屬性和方法。
什麼是類。
創建類的一個實例。
特殊方法:
__init__
和__str__
。多態。
繼承。
代碼樁。
測試題
1. 定義一個新的對象類型時用什麼關鍵字?
2. 什麼是屬性?
3. 什麼是方法?
4. 類和實例之間有什麼區別?
5. 方法中實例引用通常用什麼名字?
6. 什麼是多態?
7. 什麼是繼承?
動手試一試
1. 為 BankAccount
建立一個類定義。它應該有一些屬性,包括賬戶名(一個字符串)、賬號(一個字符串或整數)和餘額(一個浮點數),另外還要有一些方法顯示餘額、存錢和取錢。
2. 建立一個可以掙利息的類,名為 InterestAccount
。這應當是 BankAccount
的一個子類(所以會繼承 BankAccount
的屬性和方法)。InterestAccount
還應當有一個對應利息率的屬性,另外有一個方法來增加利息。為了力求簡單,假設每年會調用一次 addInterest
方法計算利息並更新餘額。