python中的面向對象,難道是和對象說悄悄話?

python中的面向對象,難道是和對象說悄悄話?

1

關注微信公眾號:AKDA,給你更多好看

很多人都知道python是一門面向對象的程序開發語言,但是關於面向對象,一些初學者不得其解,但是也不要太過著急,因為對於初識編程的人來說,這一塊的確不太好理解,但是可以用大量的實例來構建我們大腦中對它的認知。

其實在學習python面向對象之前,此前的所有都是面向過程的,我們定義各種各樣的函數,

其實每一步都是在完善我們的細節,最終才能實現我們想要的結果。

而什麼又是面向過程呢,比如說你過生日了,你想要吃蛋糕,這時你並沒有直接走向蛋糕坊,而是在網上百度蛋糕的製作的基本材料還有它的製作步驟,這一下可忙壞了你,你需要知道這些材料在哪些地方能獲取得到,你可能還要購買相應的製作工具,然後還要學習怎麼去操作。

2

而用到面向對象的方式就好解決了,你可以找到一處蛋糕坊,然後跟老闆說明你想要的蛋糕,什麼尺寸,要加什麼些圖案,你付了訂金,第二天你就可以拿到你想要的蛋糕了。

有人就會問,對啊,我現在就是用第二種方式啊,這有什麼稀奇的?對,正是因為我們用了面向對象的生活模式,所以我們的生活效率提高了很多。

在一些大型程序開發過程中,我們用的是面向對象,如果用的是面向過程,將會牽一髮而動全身,在上面自己製造蛋糕的環節當中,你一個細節掌握不到位,有一種材料沒湊齊,都不會達到你想要的結果。

而蛋糕坊就是我們面向對象中的類,它是我們封裝成製作蛋糕的一個整體,下次我們想吃蛋糕了,只需要找到這個整體,就可以吃到想吃的蛋糕了。

在這裡,我們將面向過程和面向對象做一個對比:

面向過程:根據業務邏輯從上到下寫代碼,所有具體的問題是你自己考慮的。

面向對象:將數據與函數綁定到一起,進行封裝,這樣才會有更快速的開發程序,

只需要確定目標,找一個能解決這個問題的對象,接下來這個任務就由這個對象解決。

3

此時的你如果還不懂,我再舉個例子,大家都買過電腦吧,買電腦之前,我們通常都會諮詢什麼學計算機的,數碼控啊,因為關於電腦配置啊,一些比較牛叉的機型啊,他們是門兒清,如果之前你都沒摸過電腦,此時你想惡補電腦知識,希望自己買一台性價比高的電腦,可能嗎?

所以,你不得威逼利誘你的數碼控哥們陪著你去一趟電腦城啊,看什麼機型,查看什麼配置,這款電腦的均價是多少,你都得聽你哥們的,最後你哥們談妥了以後,結賬需要你來結,你們開開心心提著電腦回去了,你請你哥們吃了一個冰激凌,你哥們罵你是「奸商」。

這裡,你的哥們就是一個封裝的對象,電腦方面的知識你不明白,你找他解決,所有電腦處理中的細節問題他會考慮到,你只需要調用這個對象即可。

面向過程,函數也可以做,但是更多情況下還是用面向對象來解決問題,節省成本,你可以有更多的時間去做你擅長的事情。

4

如果到這裡了你還不懂,好,我再舉個例子,最後一個了啊!

如果你想學習一門編程語言,尤其是python的話,如果你採用面向過程的模式,首先你是不是得了解這門語言,了解這門語言的用途,這門語言的詳細資料在哪,怎麼在我的電腦上安裝虛擬機,構建python的執行環境,自己摸索本機電腦的不兼容問題,自己在網上找教程,自己摸索著趟python學習當中的各個坑。

重要概念無法理解幾度想放棄,還需要自己找測試題,自己找面試題,這就是面向過程,當然,最終你也會通過面向過程的方式學會了python,但是花的時間成本太大,而且你也不可能考慮得面面俱到。

而用面向對象的模式就是你要找到python編程牛叉的人或者一個權威的輔導機構,你就好比安裝上了兩個翅膀,你可以不用擔心掉坑裡了啊,因為你在俯視所有的坑。

最後還是想對面向對象做一個總結,就是你要明確你的目標,找一個能幫助你實現目標的對象,你可以不會外語,但你可以帶著一個翻譯,依然可以在國外做買賣,談生意,遇到需要翻譯的情況全程由這個翻譯來解決。

說到這裡,你還不懂,呃~~~~~

不行,讓我吐一口血先!

5

接下來要講到一個重要的知識點,就是說到面向對象,一定會說到類,那麼什麼是類呢,類和對象又有什麼關係呢?

還是舉個例子,我們實際生活中看到的實體,在我們把他們做出來之前,是不是前期要進行設計,那好,設計的時候是不是有一個設計圖紙,小物件的話是不是得有一個模具,這裡的設計圖紙和模具就是我們定義的類,而對象是我們通過設計圖紙和模具製造出來的實體,是能夠看得見摸得著的存在。

當然,我們在定義類的時候我們會涉及到很多屬性和方法,比如說我們給狗定義一個類,這裡的屬性就要包括它的毛色,它的體重,它的奔跑速度,它有沒有尾巴。

這裡狗的功能是什麼啊,就是可以「汪汪叫」,還可以奔跑,這個一定要和屬性當中的奔跑速度分開,速度是屬性,奔跑是動作,是它的功能。

關於這塊內容詳細的信息在後期進行擴展。

說完了面向對象,下次別人再問到面向對象的時候,不要傻傻的認為是和對象在說悄悄話!


推薦閱讀:

面向對象介紹
讓我們做個簡單的解釋器(一)
Python 004-03:字元串全部處理方式
辦公自動化與python編程探索(二)
理論上最好的編程語言: 並行因果篇

TAG:編程 | 編程語言 | Python |