python面向对象怎么解决_Python面向对象编程1
前言
面相對象是Python的重要特性,繼承了C++的類風(fēng)格,在Python中的一切數(shù)據(jù)類型都是面向?qū)ο蟮摹1菊轮饕榻BPython的面向?qū)ο缶幊獭?/p>
面向?qū)ο?#xff1a;
什么是OOP(面向?qū)ο?,Object Oriented Programming,原來就是面向?qū)ο蟮木幊贪?#xff0c;還有OOD(面向?qū)ο蟮脑O(shè)計(jì)),OOA(面向?qū)ο蟮姆治?。那什么是面向?qū)ο竽?#xff1f;要想了解這個問題我們要先了解面向過程,這樣對比我們就好理解了。
很早很早以前的編程是面向過程的,比如實(shí)現(xiàn)一個算術(shù)運(yùn)算1+1 = 2,通過這個簡單的算法就可以解決問題。但是隨著時代的進(jìn)步,人們不滿足現(xiàn)有的算法了,因?yàn)閱栴}越來越復(fù)雜,不是1+1那么單純了,比如一個班級的學(xué)生的數(shù)據(jù)分析,這樣就有了對象這個概念,一切事物皆對象。將現(xiàn)實(shí)的事物抽象出來,注意抽象這個詞是重點(diǎn)啊,把現(xiàn)實(shí)生活的事物以及關(guān)系,抽象成類,通過繼承,實(shí)現(xiàn),組合的方式把萬事萬物都給容納了。實(shí)現(xiàn)了對現(xiàn)實(shí)世界的抽象和數(shù)學(xué)建模。這是一次飛躍性的進(jìn)步。
舉個最簡單點(diǎn)的例子來區(qū)分 面向過程和面向?qū)ο?#xff1a;
有一天你想吃魚香肉絲了,怎么辦呢?你有兩個選擇
1、自己買材料,肉,魚香肉絲調(diào)料,蒜苔,胡蘿卜等等然后切菜切肉,開炒,盛到盤子里。
2、去飯店,張開嘴:老板!來一份魚香肉絲!
看出來區(qū)別了嗎?這就是1是面向過程,2是面向?qū)ο蟆?/p>
面向?qū)ο笥惺裁磧?yōu)勢呢?首先你不需要知道魚香肉絲是怎么做的,降低了耦合性。如果你突然不想吃魚香肉絲了,想吃洛陽白菜,對于1你可能不太容易了,還需要重新買菜,買調(diào)料什么的。對于2,太容易了,大喊:老板!那個魚香肉絲換成洛陽白菜吧,提高了可維護(hù)性。總的來說就是降低耦合,提高維護(hù)性!
面向過程是具體化的,流程化的,解決一個問題,你需要一步一步的分析,一步一步的實(shí)現(xiàn)。
面向?qū)ο笫悄P突?#xff0c;你只需抽象出一個類,這是一個封閉的盒子,在這里你擁有數(shù)據(jù)也擁有解決問題的方法。需要什么功能直接使用就可以了,不必去一步一步的實(shí)現(xiàn),至于這個功能是如何實(shí)現(xiàn)的,管我們什么事?我們會用就可以了。
面向?qū)ο蟮牡讓悠鋵?shí)還是面向過程,把面向過程抽象成類,然后封裝,方便我們我們使用的就是面向?qū)ο罅恕?/p>
面向過程:
優(yōu)點(diǎn):性能比面向?qū)ο蠛?#xff0c;因?yàn)轭愓{(diào)用時需要實(shí)例化,開銷比較大,比較消耗資源。 缺點(diǎn):不易維護(hù)、不易復(fù)用、不易擴(kuò)展.
優(yōu)點(diǎn):易維護(hù)、易復(fù)用、易擴(kuò)展,由于面向?qū)ο笥蟹庋b、繼承、多態(tài)性的特性,可以設(shè)計(jì)出低耦合的系統(tǒng),使系統(tǒng) 更加靈活、更加易于維護(hù) . 缺點(diǎn):性能比面向過程差
面向?qū)ο蟮娜筇匦?#xff1a;
1、封裝 隱藏對象的屬性和實(shí)現(xiàn)細(xì)節(jié),僅對外提供公共訪問方式,將變化隔離,便于使用,提高復(fù)用性和安全性。 2、繼承 提高代碼復(fù)用性;繼承是多態(tài)的前提。 3、多態(tài) 父類或接口定義的引用變量可以指向子類或具體實(shí)現(xiàn)類的實(shí)例對象。提高了程序的拓展性
總結(jié)
以上是生活随笔為你收集整理的python面向对象怎么解决_Python面向对象编程1的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: no.7_qzhai 开心版_开心宝贝G
- 下一篇: MySQL 聚合函数 和 分组查询(初级