本課的內容分類兩個部分。
第一部分講getters and setters methods,其本質還是在於 information hiding,使用setter() 和 getter() 方法對類的數據進行讀寫,尤其是setter() 方法,可以對寫入的數據進行判斷,防止錯誤類型和錯誤範圍的數據進入實體。
第二部分講inheritance,定義一個父類animal,然後再得到他的子類,animal->person->student,或者 animal -> rabit。着重解釋了class variable和instance variable的區別。
本篇筆記和代碼都來自於MIT的公開課,第九課,Python的類和繼承。《Introduction to Computer Science and Programming in Python》。
Getter and Setter Methods
這一部分用三張ppt內容可以概括。
- 推薦使用getter和setter來訪問類的變量。
- 出於information hiding的考慮,類的作者自定義變量名,調用者不知道,直接訪問會出錯。
使用 a.get_age() 而不是 a.age 是一種更好的變成風格,易於維護,不易出錯
- python允許我們在類的定義之外,直接讀,寫,增加實體的變量。但這是不推薦的。