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 11

Property Decorator

昨天介紹了Object-Oriented程式語言中property的基本概念,以及Python實作property的方式:property()函數。今天prop...

2022-09-26 ‧ 由 alexvan 分享
DAY 12

Property的應用Scenario

今天繼續property之旅。可能是最後一篇了,試用講故事形式。 話說有一間Alex & Son Co.公司,內有團隊A(PM為Oliver,成員有...

2022-09-27 ‧ 由 alexvan 分享
DAY 13

自動產生Boilerplate Code的好幫手:Dataclass

今天介紹一個Python在設計類別時的小工具dataclass模組,大概勉強和封裝攀得上一點關係。一表三千里嘛。 之前我們看到的類別設計範例,其實只能算是...

2022-09-28 ‧ 由 alexvan 分享
DAY 14

More about Dataclass Decorator

今天還是再深入一點介紹dataclass(註1)好了。 擴充性 這是昨天「傳統版」的code: class Tree(): '''為了聚焦本clas...

2022-09-29 ‧ 由 alexvan 分享
DAY 15

Class Attributes

Python的封裝介紹差不多「開到荼靡」了。今天起分享的也許是最後一個大主題(註1)。 在正式介紹前,各位請沿用以上Tree類別,設想一下這個需求: 使...

2022-09-30 ‧ 由 alexvan 分享
DAY 16

Class Methods

昨天簡介類別屬性(class attributes),今天則淺談類別方法(class methods)。 筆者談類別方法的「方法」(註1),是從類別屬性切入。...

2022-10-01 ‧ 由 alexvan 分享
DAY 17

To Self, or Not To Self: That Is the Question

之前十幾篇端出連串理論和術語的「大魚大肉」,讀者可能已經吃膩。今天換碟清粥小菜,幫大家清清腸胃。 這碟清粥小菜,是 self 和 cls。 self vs cl...

2022-10-02 ‧ 由 alexvan 分享
DAY 18

大觀園的妙玉:Static Methods

假如今晚沒有夢到更多封裝主題,本篇應該是這條物件導向大支柱的最後一講了。 前面幾篇談到:屬性(attributes)如按類別/物件層面區分,有類別屬性(cl...

2022-10-03 ‧ 由 alexvan 分享
DAY 19

OO第二大支柱Inheritance:起手式

今天起介紹物件導向程式的第二大支柱:繼承(Inheritance)。不過在正式開始前,先補充一下昨天的封裝本來要講卻漏掉的部分: 封裝保護層級(public v...

2022-10-04 ‧ 由 alexvan 分享
DAY 20

子類別存取父類別的私有屬性和方法,真的不行嗎?

今天沒有新進度,只是寫code印證一下之前的「理論」。 還記得筆者以前說過,類別的私有(private)屬性和方法,只能在類別自身內存取,連它的子子孫孫(繼...

2022-10-05 ‧ 由 alexvan 分享