python編程有面向過程、面向函數、面向對象三種,那么他們區別在哪呢?這個問題,讓我想起我在學習編程的時候,我的老師給我舉的例子。分享給大家。
面向過程就是將編程當成是做一件事,要按步驟完成!
比如煮咖啡這件事,先拿一定量的咖啡豆,然后磨成粉末,再倒入咖啡機,等待幾分鍾,就煮好了咖啡。大概過程是這樣的
整個過程是按步驟一步一步執行,最終達到目標!
面向函數呢,就是將編程分成N件事情,分配每件事情為一個函數,然后要按步驟執行函數完成!
同樣是上面的例子,我們可以這樣實現

分解整個任務,執行每個單獨小任務,該哪個任務執行,就通知對方即可,執行的過程呢,已經提前封裝在函數內了!
面向對象就不一樣了,將整個任務封裝成一個大的類,在這個類里面詳細分解執行每個步驟,只需要執行類就可以完成任務
還以上面例子來說,面向對象就是我不再自己煮咖啡了,而且先設計一個機器人,告訴它煮咖啡的每個步驟(這里注意,你可以使用別人機器人提前設定好的程序哦),然后放在一邊,當我想煮咖啡的時候,只需要給機器人一個指令,就自動煮好一杯咖啡了!在代碼中是這樣的

只需要告訴機器人,去煮咖啡,一會機器人會自動將咖啡煮好並報告結果!
總結
面向過程:需要你自己去一步一步的執行,每一次都要你復制粘貼這些代碼
面向函數:也是需要自己去一步一步執行,只是執行的過程已經提前設定好了,
面向對象:讓機器人去執行 ,因為已經設定好執行步驟,你只需等待結果就好了
這三種方法如果是第一次使用,區別不大。區別就在於復用性上,也就是第二次,第三次使用的時候,你發現面向對象只需要調用一下實例化對象就行了,第二種方法需要一個一個調用函數,
站在計算機程序角度來講,面向過程(函數)和面向對象的本質理解為:
面向過程(函數)的程序設計把計算機程序視為一系列的命令集合,即一組函數的順序執行。為了簡化程序設計,面向過程把函數繼續切分為子函數,即把大塊函數通過切割成小塊函數來降低系統的復雜度。而面向對象的程序設計把計算機程序視為一組對象的集合,而每個對象都可以接收其他對象發過來的消息,並處理這些消息,計算機程序的執行就是一系列消息在各個對象之間傳遞。總的來說:面向對象是將事物高度抽象化,面向對象必須先建立抽象模型,之后直接使用模型就行了;面向過程是一種自頂向下的編程!