python-面向對象VS面向過程

接觸python久了,我們經常聽到這樣一句話,就是python中“萬物皆對象”。這是因爲,python是一門面向對象的編程語言。

那麼什麼是面向對象呢?這裏就需要談一下面向對象和麪向過程之間的區別。


1、面向過程

面下過程比較容易理解,就是遇到一個問題,我們按照正常邏輯開始思考,按照步驟來解決這樣一個問題,結果,我們就得到了解決這個問題的一個過程。

例如,小明現在想去北京旅遊,我們需要爲小明買一張飛機票,那麼我們得到的過程是這樣的:

打開某網站

輸入當前地址和北京

查詢機票

輸入小明的證件信息

付款

這樣我們就幫小明把機票買完了,整個過程就是這樣,比較容易思考,編寫出來的程序也會整潔明瞭。

這就是所謂的面向過程,就是按照過程來編寫程序。

先來看一下這樣做的好處:

  • 將我們的程序分解爲一個一個步驟,通過對每個步驟的抽象來完成程序
  • 這種編程方式符號人類的思維,編寫起來比較容易

大概也就這些了,那麼這麼做有什麼缺點呢?

如果,小華現在想去上海旅遊,又需要給小華買一張高鐵票,那我有需要從頭再來編寫這樣一個程序,這時候再來幾個人,我就感覺到厭煩了,我就想到能不能用一個模板來解決所有人的車票。這個時候面向對象就橫空出世了。

總結一下面向過程的缺點:

  • 這種編寫方式往往只能實現一個特定功能
  • 如果需要實現別的功能,複用性往往比較低,而我們想要的是通用的程序

2、面向對象

所謂面向對象的語言,簡而言之,就是語言中的所有操作都是通過對象來進行的。

對象,就是一個存儲數據的容器。

任何事情都由兩部分組成,就是“人”(屬性)和行爲(方法)。

比方說,就剛纔買車票這一件事,我可以給他弄出一個模板來。
這個過程中的屬性都有:

  • 小明
  • 小明的證件信息
  • 當前地址和目的地
    行爲有:
  • 打開某網址
  • 輸入信息
  • 付款
    這樣一個模板就這樣完成了,之後給所有人買票我都可以用這樣一個模板。(注意上述屬性和方法沒有先後順序)

總結一下面向對象的好處:

  • 面向對象的編程語言,關注的是對象,不注重過程
  • 面向對象的編程思想,將所有功能統一保存到對應的對象中,要使用某個功能,直接找到對應的對象即可
  • 這種編碼方式比較容易閱讀,並且易於維護,容易複用。

當然它也是有缺點的,就是編寫的過程中不太符合常規的思維,程序寫起來比較困難。


總而言之,面向對象是我們的終極目標。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章