本系列預計先介紹物件導向(以下簡稱OO)的基本概念,然後依OO的三或四大支柱:(Abstraction), Encapsulation, Inheritance, and Polymorphism,說明Python如何以其語言哲學來實作這幾個OO核心概念。如行有餘力,將試圖比較Python和其他OO程式語言(C++, Java, C#等)在OO實作上的異同。
內容分配:
OO基本概念介紹:約1-2篇
Abstraction $ Encapsulation: 約10篇
Inheritance: 約8篇
Polymorphism: 約8篇
結論:約2-3篇
開宗明義,先說本系統文章的寫作風格:盡量條列,並附上圖解及程式碼。開講: Object-Oriented這個術語,台灣的中譯『物件導向』相信大家都耳熟能詳,大...
上篇提到OO的優點之一是較為直觀,例如透過類別Person定義一個me。至於Person()和me之間的關係,用以下比喻(其實是事實),初學者可能更易理解:...
上篇的最後提到物件導向程式設計有三大「鼎足」,不過西方人好像沒有鼎,所以通常用「支柱」(pillars)來形容。其實不管鼎足還是支柱,指的都是OO的幾大重要概念...
之前說到OO程式設計的實際運作,就是將資料(attributes)和使用這些資料的方法(methods)「封裝」在類別(class)中。今天起我們將逐漸「接地氣...
介紹完constructor建構子,今天起講一個可能是封裝方面最重要的主題:封裝的「保護層級」。 封裝保護層級,是類別中的資料(屬性)和動作(方法)對外的可...
昨天講到封裝的一個重要觀念「保護層級」,筆者稱之為三個p's(或P's):public(公開), protected(保護), 和private(私有)。今天將...
不管您是否NBA粉絲,只要對籃球界有點認識,NBA史上傳奇控衛--Magic Johnson魔術強生--的大名,總不會陌生吧?告訴大家,原來Python也有Ma...
昨天最後的「下篇預告」,筆者突然冒出一句:Python是可以在外部修改私有屬性的。這裡的「修改」,昨天沒有交代得很清楚,其實筆者想說的是:Python是可以使用...
今天以實例說明何以類別要有私有屬性。實務上私有屬性的機制,對類別究竟有甚麼「貢獻」。 很多人為求方便或並不了解保護層級的概念,在設計類別的時候,所有屬性一律...
今天起介紹封裝的另一個主題:attributes vs properties(或單數attribute vs property)。 昨天花了很大力氣,設法釐...