當前位置:
首頁 > 知識 > 淺入深談:如何更好地理解面向對象編程與面向過程編程的本質區別?

淺入深談:如何更好地理解面向對象編程與面向過程編程的本質區別?

丁彥軍

投稿作者介紹:

一個痴迷於Python語言的業餘程序猿,經過半年苦練,經歷過從入門到

放棄,現在慶幸走到痴迷於Python狀態。未來的理想是能夠與一群痴迷

於Python語言的程序猿做有意義的事。

知乎專欄|戀習Python

鏈接:https://www.zhihu.com/people/cai-niao-fen-xi-64/activities

不久前有人在微信私聊我,被問及面向對象編程和面向過程編程的本質區別是什麼?對於這個問題菜鳥分析也沒有做過多的思考,今天在此做一個淺入深談,探求一些面向對象和面向過程本質的區別在哪裡?

今天,我們以一個例子(如打掃房間)來說明面向過程和面向對象在程序流程上的不同之處。

在菜鳥分析看來:

面向過程就是將編程當成是做一件事,要按步驟完成,每一步就是一個過程。比如菜鳥分析要打掃房間這件事,需要先取掃帚,然後仔仔細細打掃每一處,最後將掃帚放回原地。

代碼實現過程

輸出結果

面向對象就是將編程當成是一個事物,對外界來說,事物是直接使用的,不用去管他內部的情況。而編程就是設置事物能夠做什麼事。其實有點像是將面向過程給放到事物內部了。仍然舉打掃房間為例,其實面向過程就好像自己去打掃房間,所以要講究步驟,而面向對象就好像你只要通知掃地機器人打掃房間,即發一個消息就可以了,至於機器人怎樣打掃,是不用知道的。

代碼實現過程

運行結果

只需自己發出掃地這個消息後,過了一會兒後,(1,2,3)掃地機器人將向您彙報結果。

面向過程:你拿掃帚去打掃房間,主體是你,取掃帚,大掃地,一系列動作都需要你自己完成;

面向對象:把掃地機器人當成主體對象,相當於個活物,機器人主動去打掃衛生,至於如何打掃完,跟你沒關係。

因此,在菜鳥分析看來,面向過程,是人在幹活。面向對象,相當於人創造機器人去幹活。

站在計算機程序角度來講,面向過程和面向對象的本質理解為:

面向過程的程序設計把計算機程序視為一系列的命令集合,即一組函數的順序執行。為了簡化程序設計,面向過程把函數繼續切分為子函數,即把大塊函數通過切割成小塊函數來降低系統的複雜度。

而面向對象的程序設計把計算機程序視為一組對象的集合,而每個對象都可以接收其他對象發過來的消息,並處理這些消息,計算機程序的執行就是一系列消息在各個對象之間傳遞。

總的來說:面向對象是將事物高度抽象化,面向對象必須先建立抽象模型,之後直接使用模型就行了;面向過程是一種自頂向下的編程

一句話,秒懂!若還不懂,來私信我,直到你懂為止!


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 python 的精彩文章:

第一課 我是怎樣三天學會Python編程,從一無所知到掌握爬取和訊網上市公司財務報表做分析的
如何用Python快速導入多個excel文件併合並文件數據

TAG:python |