iT邦幫忙

鐵人檔案

2022 iThome 鐵人賽
回列表
Software Development

Oops! OOPP: An Introduction to Object-Oriented Programming in Python 系列

本系列預計先介紹物件導向(以下簡稱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篇

鐵人鍊成 | 共 30 篇文章 | 7 人訂閱 訂閱系列文 RSS系列文
DAY 21

Overriding

今天真正要講的是overriding。但在進入主題之前,先做點熱身運動: 淺談Overloading 物件導向程式設計領域有兩個文字相似而意義不同的術語:o...

2022-10-06 ‧ 由 alexvan 分享
DAY 22

John Doe有幾個「老豆」?

「老豆」,粵俚,老爸也。 今天談的就是John Doe(張三)一個人有幾個老爸的問題。在物件導向程式設計世界,這叫「多重繼承」(Multiple Inher...

2022-10-07 ‧ 由 alexvan 分享
DAY 23

The Pros and Cons of Multiple Inheritance

今天談談多重繼承的優缺點。 上篇最後的情境-7,以super().show_breed()呼叫父類別的方法,結果每一個類別的方法只會呼叫一次: 先跑Tim...

2022-10-08 ‧ 由 alexvan 分享
DAY 24

ABC: 談談Abstract Classes

今天要談的ABC不是American Born Chinese的'ABC',而是Python的一個模組:abstract base classes,以及其背後的...

2022-10-09 ‧ 由 alexvan 分享
DAY 25

還是Abstract...

今天續奏昨天的未盡琴音: 還記得上篇的abstract classes抽象類別的定義嗎?類別中只要有一個抽象方法,該類別就是抽象類別。 和抽象類別相對...

2022-10-10 ‧ 由 alexvan 分享
DAY 26

繼承vs組合

今天是繼承的最後一篇,介紹另一個在物件導向程式語言常常討論的議題:繼承和組合之比(或之爭)。 物件導向領域的繼承機制,父子類別間的關係,常會用「子類別is...

2022-10-11 ‧ 由 alexvan 分享
DAY 27

Polymorphism「現形」記

講polymorphism多型,大多數是從「拆字算命」(還好不用紫微斗數)起頭。吾從眾: 名詞解釋 polymorphism一詞,是poly和morphi...

2022-10-12 ‧ 由 alexvan 分享
DAY 28

「形式型別」故意和「實際型別」不同,作用何在?

今天補充昨天一些未交代細節。 「多型」Polymorphism架構圖 下面是筆者的手繪圖示。很簡陋,但勉強能說明多型的大致架構和分類: 請記住:本章所談的...

2022-10-13 ‧ 由 alexvan 分享
DAY 29

Polymorphism in Python

今天試寫Python的多型。 Python就不必管甚麼「形式型別」和「實際型別」了 前兩篇以C#為例介紹執行時期(run-time)多型。其中一大重點是「形...

2022-10-14 ‧ 由 alexvan 分享
DAY 30

終點是下一段學習的起點

最後一天旅程。今天前半段分享程式如何利用Polymorphism技術「重構」,後半段則是總結和心得報告。 程式中如有多重if's或case's判斷物件,可考慮...

2022-10-15 ‧ 由 alexvan 分享