python 是面向?qū)ο笳Z(yǔ)言碎节,我們先來(lái)了解一下什么是對(duì)象,面向?qū)ο笫歉陕锏牡治溃乱黄莆脑趤?lái)說(shuō)說(shuō)在python中狮荔,怎么使用面向?qū)ο髞?lái)編程。
我們開發(fā)的程序是給用戶使用的介粘,而我們的程序是使用對(duì)象來(lái)完成產(chǎn)生的殖氏。
對(duì)象可以看成是對(duì)問(wèn)題的描述的一種解決方案,它與問(wèn)題空間之間一一映射姻采。也就是將問(wèn)題抽取成為對(duì)象集合雅采。
我們可以將對(duì)象看作服務(wù)提供者,比如手機(jī)這個(gè)對(duì)象慨亲,我們可以用它來(lái)聊天婚瓜,打開閃光燈,砸核桃等刑棵。
當(dāng)每個(gè)對(duì)象都有各自獨(dú)特的服務(wù)的時(shí)候巴刻,我們?cè)谑褂玫臅r(shí)候就很方便高效了,我們知道要實(shí)現(xiàn)什么功能蛉签,就拿什么對(duì)象來(lái)使用胡陪,如果我們對(duì)多個(gè)對(duì)象的各個(gè)方面都“組合”的很好的話沥寥,那么對(duì)代碼來(lái)說(shuō)是高內(nèi)聚的,我們都約定俗成開發(fā)程序高內(nèi)聚是我們追求你之一柠座。
假設(shè)在合作開發(fā)的時(shí)候邑雅,有人負(fù)責(zé)創(chuàng)建類來(lái)提供服務(wù),有人收集使用類來(lái)快速實(shí)現(xiàn)程序開發(fā)妈经,我們把第一種人暫且叫類(服務(wù))創(chuàng)建者淮野,第二種人叫做使用服務(wù)(類)者。
那么在這種情況下吹泡,創(chuàng)建者對(duì)自己的類只需要暴露必需的功能給使用者就可以了骤星,使用者無(wú)需關(guān)心創(chuàng)建者是怎么樣實(shí)現(xiàn)類的細(xì)節(jié),拿來(lái)用就好了荞胡。
這樣創(chuàng)建者會(huì)對(duì)比較“脆弱”的代碼進(jìn)行封裝,使用者無(wú)法觸及了嚎,防止使用者隨意修改泪漂,減少了bug的產(chǎn)生,還有就是創(chuàng)建者對(duì)封裝的這些代碼修改不會(huì)對(duì)使用者造成影響歪泳,比如類創(chuàng)建者在一開始創(chuàng)建類的時(shí)候某功能寫的簡(jiǎn)單了萝勤,后來(lái)為了提高性能,那么修改這部分代碼呐伞,實(shí)際上對(duì)使用者是毫無(wú)影響的敌卓。
當(dāng)你發(fā)現(xiàn)對(duì)象之間存在諸多相似性的時(shí)候,并不需要每個(gè)都創(chuàng)建獨(dú)立的對(duì)象伶氢,可以找出他們的相同點(diǎn)作為基類(父類)趟径,進(jìn)而在衍生出差異的類(子類),這樣子父類就包含子類所有共享的行為特性了癣防,子類就以不同的實(shí)現(xiàn)方式存在蜗巧。這就是面向中繼承的概念。
某種事物在不同時(shí)刻的表現(xiàn)出來(lái)的不同狀態(tài)蕾盯。 比如說(shuō):動(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的正確姿勢(shì)」中發(fā)送 python 免費(fèi)獲取哦!
再ps:說(shuō)真的丢郊,如果你能點(diǎn)個(gè)贊轉(zhuǎn)發(fā)支持我一下我會(huì)更有動(dòng)力寫像云。
順手
锌雀,點(diǎn)個(gè)贊吧