python 是面向?qū)ο笳Z言,我們先來了解一下什么是對(duì)象,面向?qū)ο笫歉陕锏?,下一篇推文在來說說在python中,怎么使用面向?qū)ο髞砭幊獭?/p>
我們開發(fā)的程序是給用戶使用的,而我們的程序是使用對(duì)象來完成產(chǎn)生的。
對(duì)象可以看成是對(duì)問題的描述的一種解決方案,它與問題空間之間一一映射。也就是將問題抽取成為對(duì)象集合。
我們可以將對(duì)象看作服務(wù)提供者,比如手機(jī)這個(gè)對(duì)象,我們可以用它來聊天,打開閃光燈,砸核桃等。
當(dāng)每個(gè)對(duì)象都有各自獨(dú)特的服務(wù)的時(shí)候,我們?cè)谑褂玫臅r(shí)候就很方便高效了,我們知道要實(shí)現(xiàn)什么功能,就拿什么對(duì)象來使用,如果我們對(duì)多個(gè)對(duì)象的各個(gè)方面都“組合”的很好的話,那么對(duì)代碼來說是高內(nèi)聚的,我們都約定俗成開發(fā)程序高內(nèi)聚是我們追求你之一。
假設(shè)在合作開發(fā)的時(shí)候,有人負(fù)責(zé)創(chuàng)建類來提供服務(wù),有人收集使用類來快速實(shí)現(xiàn)程序開發(fā),我們把第一種人暫且叫類(服務(wù))創(chuàng)建者,第二種人叫做使用服務(wù)(類)者。
那么在這種情況下,創(chuàng)建者對(duì)自己的類只需要暴露必需的功能給使用者就可以了,使用者無需關(guān)心創(chuàng)建者是怎么樣實(shí)現(xiàn)類的細(xì)節(jié),拿來用就好了。
這樣創(chuàng)建者會(huì)對(duì)比較“脆弱”的代碼進(jìn)行封裝,使用者無法觸及,防止使用者隨意修改,減少了bug的產(chǎn)生,還有就是創(chuàng)建者對(duì)封裝的這些代碼修改不會(huì)對(duì)使用者造成影響,比如類創(chuàng)建者在一開始創(chuàng)建類的時(shí)候某功能寫的簡單了,后來為了提高性能,那么修改這部分代碼,實(shí)際上對(duì)使用者是毫無影響的。
當(dāng)你發(fā)現(xiàn)對(duì)象之間存在諸多相似性的時(shí)候,并不需要每個(gè)都創(chuàng)建獨(dú)立的對(duì)象,可以找出他們的相同點(diǎn)作為基類(父類),進(jìn)而在衍生出差異的類(子類),這樣子父類就包含子類所有共享的行為特性了,子類就以不同的實(shí)現(xiàn)方式存在。這就是面向中繼承的概念。
某種事物在不同時(shí)刻的表現(xiàn)出來的不同狀態(tài)。 比如說:動(dòng)物,可以表現(xiàn)為狗,豬,牛等等。這就是面向中多態(tài)的概念。
關(guān)注我,讓你像看小黃文一樣輕松學(xué)到 Python 的所有!
http://weixin.qq.com/r/KC-Ty2-EvjLBrSuo93o6?(二維碼自動(dòng)識(shí)別)
ps:還沒獲取我精心準(zhǔn)備的 Python 電子書和思維導(dǎo)圖等干貨的可以在我的公眾號(hào)「學(xué)習(xí)Python的正確姿勢」中發(fā)送 python 免費(fèi)獲取哦!
再ps:說真的,如果你能點(diǎn)個(gè)贊轉(zhuǎn)發(fā)支持我一下我會(huì)更有動(dòng)力寫。
順手
,點(diǎn)個(gè)贊吧