Python之物件導向程式設計介紹

2021-09-24 18:57:06 字數 1194 閱讀 4182

「面向過程」(procedure oriented)是一種以過程為中心的程式設計思想。這些都是以什麼正在發生為

目標進行程式設計,不同於物件導向的是誰在受影響。與物件導向明顯的不同就是封裝、繼承、類。

例如:五子棋,面向過程的設計思路就是首先分析問題的步驟:

1、開始遊戲,2、黑子先走,3、繪製畫面,4、判斷輸贏,5、輪到白子,6、繪製畫面,

7、判斷輸贏,8、返回步驟2,9、輸出最後結果。把上面每個步驟用不同的方法來實現。

特性:模組化 流程化

優點:效能比物件導向高, 因為類呼叫時需要例項化,開銷比較大,比較消耗資源;

微控制器、嵌入式開發、linux/unix等一般採用面向過程開發,效能是最重要的因素。

缺點:沒有物件導向易維護、易復用、易擴充套件

函式式程式設計是種程式設計方式,它將電腦運算視為函式的計算。函式程式語言最重要的基礎是λ演算(lambda calculus),而且λ演算的函式可以接受函式當作輸入(引數)和輸出(返回值)。

主要思想: 把運算過程盡量寫成一系列巢狀的函式呼叫。

python 不是也不大可能會成為一種函式式程式語言,但是它支援許多有價值的函式式程式語言構建。也有些表現得像函式式程式設計機制但是從傳統上也不能被認為是函式式程式語言的構建。

內建函式 filter()、map()、reduce()

物件導向是把構成問題事務分解成各個物件,建立物件的目的不是為了完成乙個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。

例如:整個五子棋可以分為

1、黑白雙方,這兩方的行為是一模一樣的,

2、棋盤系統,負責繪製畫面,

3、規則系統,負責判定諸如犯規、輸贏等。

第一類物件(玩家物件)負責接受使用者輸入,並告知第二類物件(棋盤物件)棋子布局的變化,棋盤物件接收到了棋子的變化就要負責在螢幕上面顯示出這種變化,同時利用第三類物件(規則系統)來對棋局進行判定。

(可以明顯地看出,物件導向是以功能來劃分問題,而不是步驟。同樣是繪製棋局,這樣的行為在面向過程的設計中分散在了多個步驟中,很可能出現不同的繪製版本,因為通常設計人員會考慮到實際情況進行各種各樣的簡化。而物件導向的設計中,繪圖只可能在棋盤物件**現,從而保證了繪圖的統一。)

特性:抽象 封裝 繼承 多型

優點:易維護、易復用、易擴充套件,由於物件導向有封裝、繼承、多型性的特性,可以設計出低耦合的系統,使系統更加靈活、更加易於維護

缺點:效能比面向過程低

python之物件導向程式設計

物件導向的程式設計的核心是物件 上帝式思維 要理解物件為何物,必須把自己當成上帝,上帝眼裡世間存在的萬物皆為物件,不存在的也可以創造出來。物件是特徵和技能的結合,其中特徵和技能分別對應物件的資料屬性和方法屬性。優點是 解決了程式的擴充套件性。對某乙個物件單獨修改,會立刻反映到整個體系中,如對遊戲中乙...

Python之物件導向程式設計

類和物件 類是抽象的模板,比如我們抽象乙個學生類,很容易想到學生固有的一些屬性,比如名字,年齡等等,建立乙個學生類 class student object pass 複製 這裡的object是表明student類是從哪個類繼承來的,在python中object是所有類的父類 繼承的概念下文會提及 ...

python之物件導向程式設計

當使用 類名 實參 建立例項物件時,python直譯器的主要處理過程包括兩大步 首先會查詢該類物件是否實現了特殊方法 new 如果沒有實現,則去其父類中依次查詢,直到類物件object。class parent object def new cls,args,kwargs pass class ch...