標籤: 程式設計

圖片來源:郭耀仁 from DATAINPOINT
想透過電子郵件收到我的文章,按下訂閱鈕🎉
什麼是物件導向
我們常聽到對 Python 程式語言的描述可能會有直譯(Interpreted)、高階(High-level)、泛用(General-purposed)或者物件導向(Object-oriented),其中最讓非工程師感到困惑大概會是「物件導向」這個名詞。
原因可能為非工程師在使用 Python 程式語言的時候多半是採取順序型態(Procedural),這種寫作型態的概念大概像是將程式需要處理的任務區分出數個步驟,然後依照順序宣告、運算與函式等,完成一系列過程;順序型態的程式設計也恰巧與 Jupyter Notebook 的操作不謀而合,從最上方的儲存格開始執行到最下方的儲存格,因此廣為非軟體開發取向的資料分析師所熟稔。
既然順序型態的程式設計能夠滿足資料分析的需求,那麼為何要花時間學習物件導向的程式設計呢?原因可能有二:
我們遲早需要將程式碼封裝為一個可重現、便於使用的結構,這個結構稱為類別(Class),而類別就是實踐物件導向的技巧;
我們多數時候是在使用第三方套件中已經定義妥善的類別,理解物件導向對於應用面助益良多。
物件導向是程式設計中的一種概念,有別於順序型態,它是將函式與資料封裝至物件中,依據這樣寫作方式所創造出來的程式碼,具有容易重現、功能容易擴充以及使用一致性高的特性,這也是以物件導向進行軟體開發的主要原因。
什麼是類別
作為 Python 使用者常會使用內建函式 type
來判斷變數的型態,這是我們最早認知到的類別(Class),如果希望實踐物件導向將函式與資料封裝至物件之中,具體來說其實就是定義一個類別,將函式以方法(Methods)、資料以屬性(Attributes)的暱稱宣告在類別自訂的縮排程式區塊中。
如果以現實生活的例子來比喻物件(Object)與類別(Class)之間的關係,我們可以將物件對應為樂高模型,類別則是模型的設計圖,我們可以根據同一個設計圖組裝出多個具備相同的操作特徵還有外觀的模型;就如同依據類別可以建立出多個具備相同方法與屬性的物件。
專案簡介
在這個專案中,我們打算使用 Python 自訂一個 SimpleCalculator
類別;這個類別將具有四個方法:兩數相加、兩數相減、兩數相乘以及兩數相除。透過這個專案,我們能夠暸解如何將四個方法綁定在一個類別之中。
點選連結可以在瀏覽器開啟互動 Jupyter Notebook 查看完整程式碼以及專案細節:https://mybinder.org/v2/gh/datainpoint/project-simple-calculator/master?filepath=project-simple-calculator.ipynb
想暸解哪些主題,留言跟我說👇