一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Python面向?qū)ο笾疄楹我妙?lèi)?

 xiaoyimin 2018-12-18

對(duì)于非程序員科班出身的技術(shù)人員,理解很多開(kāi)發(fā)思想領(lǐng)域里面的事情,其實(shí)是一件挺痛苦的事情,直到接觸到了Python當(dāng)中的類(lèi),我才明白了什么是面向?qū)ο?/span>,更多的理解還是要通過(guò)實(shí)際的代碼操練才能夠慢慢的掌握。

今天記錄一下什么是面向?qū)ο?,在Python的編程世界里為什么要用到類(lèi)。

一、面向?qū)ο?/strong>

將大家共有的特性剝離出來(lái)進(jìn)行抽象的過(guò)程就是面向?qū)ο?,這是我對(duì)面向?qū)ο笞钪庇^的理解,例如我們?cè)诠S生產(chǎn)汽車(chē),每一款車(chē)都有自己的生產(chǎn)平臺(tái),試想一下這樣的場(chǎng)景,A款車(chē)有100個(gè)工人在獨(dú)立生產(chǎn),其中20個(gè)人生產(chǎn)底盤(pán),20個(gè)人研發(fā)發(fā)動(dòng)機(jī),40個(gè)人制作車(chē)架、車(chē)門(mén),20個(gè)人負(fù)責(zé)最終的車(chē)輛組裝,B款車(chē)同樣有100個(gè)人干著和A款車(chē)相同的事情,如果世界是這個(gè)樣子,豐田、大眾也早就倒閉了,不管是任何車(chē)型,雖然每款車(chē)都有自己獨(dú)立的生產(chǎn)平臺(tái),但是很多東西一定是具備相同屬性的,例如發(fā)動(dòng)機(jī)、方向盤(pán)、車(chē)座、輪胎,在小到螺絲帽等等,我們可以將這些共有的東西完全獨(dú)立出來(lái),變成每款車(chē)型的共有屬性,那么100個(gè)工人可能有50個(gè)人都是負(fù)責(zé)公共部分的,節(jié)省了人力成本的同時(shí),也節(jié)省了資源成本,例如我們要對(duì)座椅的尺寸進(jìn)行調(diào)整,那么僅需要對(duì)這50個(gè)人的工作內(nèi)容進(jìn)行調(diào)整即可,而不需要對(duì)每款車(chē)進(jìn)行獨(dú)立的操作,這就是面向?qū)ο鬄槲覀儙?lái)的好處。

二、Python中的面向?qū)ο蟆?lèi)

簡(jiǎn)單的舉例了面向?qū)ο蟮纳a(chǎn)場(chǎng)景,我們?cè)偻ㄟ^(guò)Python中函數(shù)式編程和類(lèi)編程來(lái)對(duì)比各自的特點(diǎn)。

例如有一個(gè)簡(jiǎn)單的需求,就是開(kāi)發(fā)一個(gè)郵件客戶端程序,可以通過(guò)程序,自定義的發(fā)送我們想要發(fā)送的內(nèi)容。

1、函數(shù)式編程

我們通過(guò)上述偽代碼簡(jiǎn)單實(shí)現(xiàn)了郵件發(fā)送的需求,但如果想讓更多的人來(lái)使用使用這個(gè)功能,就會(huì)遇到一些問(wèn)題,例如大家的smtp、用戶口令都不一樣,我們就要改造代碼變成下面的樣子。

我們又通過(guò)上述方式實(shí)現(xiàn)了多人發(fā)送的功能,程序?qū)懙竭@里看起來(lái)貌似還沒(méi)什么問(wèn)題,但如果此時(shí)我們的程序需求又增加了,例如不只是發(fā)郵件了,同時(shí)要有接收、刪除、等等功能,我們的代碼又變成下面的樣子。

我們看僅一個(gè)用戶想要實(shí)現(xiàn)三個(gè)功能時(shí),就需要寫(xiě)這么多代碼,此時(shí)代碼顯的就有些累贅了,更致命的是如果smtp的地址變了,我要把每個(gè)功能函數(shù)的傳遞參數(shù)都要改一遍,這顯然增加了工作成本和錯(cuò)誤出現(xiàn)的幾率,但我們發(fā)現(xiàn)每一項(xiàng)功能都有幾個(gè)共同的屬性,就是smtp地址,smtp用戶,smtp密碼,我們完全可以將這三個(gè)屬性進(jìn)行獨(dú)立,通過(guò)類(lèi)的封裝特性來(lái)實(shí)現(xiàn),即下面的面向?qū)ο笫骄幊獭?/p>

2、面向?qū)ο笫骄幊?/strong>

Python當(dāng)中通過(guò)創(chuàng)建類(lèi),就可以很好的實(shí)現(xiàn)面向?qū)ο蟮木幊趟枷?,同樣是上面郵件發(fā)送程序,我們來(lái)用類(lèi)的方式實(shí)現(xiàn)。

我們通過(guò)上述類(lèi)代碼的方式,創(chuàng)建了對(duì)象test_mail,然后調(diào)用它下面的send_mail、recv_mail方法等,這樣的方式使得我們的代碼邏輯更加清晰,如果smtp參數(shù)發(fā)生改變時(shí),我們也僅需要修改對(duì)象實(shí)例化時(shí)的參數(shù)即可。

在實(shí)現(xiàn)簡(jiǎn)單功能時(shí)我們使用函數(shù)式編程,因?yàn)樗銐蚝?jiǎn)單、快速,但隨著程序功能的不斷升級(jí)、提供多個(gè)復(fù)雜邏輯操作時(shí),函數(shù)式變成就顯的不那么好用了,因此針對(duì)不同的代碼場(chǎng)景,我們要用好Python中的編程方式。

Python中類(lèi)的知識(shí)點(diǎn):

  • 1、'__init__' 方法為Python中的構(gòu)造方法,用于初始化我們的類(lèi),也就是初始化我們希望的共有屬性,同時(shí)構(gòu)造方法中可以執(zhí)行該類(lèi)中其他的函數(shù)。
  • 2、self是一個(gè)形式參數(shù),為該類(lèi)的實(shí)例化對(duì)象,例如 a = My_Class 中,可以理解a就是self參數(shù)。
  • 3、創(chuàng)建對(duì)象時(shí),類(lèi)的后面需要加括號(hào),即完成類(lèi)的實(shí)例化,同時(shí)Python會(huì)自動(dòng)查找該類(lèi)中的構(gòu)造方法。
  • 4、類(lèi)中如果定義了多個(gè)功能函數(shù),那么這些函數(shù)可以稱之為該類(lèi)實(shí)例化對(duì)象所擁有的方法。
  • 5、面向?qū)ο?/span>式編程的三大特性:封裝、繼承、多態(tài)

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類(lèi)似文章 更多

    一区二区在线激情视频| 国产精品日韩欧美一区二区| 久久青青草原中文字幕| 99精品国产一区二区青青| 黄色国产自拍在线观看| 国内女人精品一区二区三区| 熟女乱一区二区三区四区| 黄色日韩欧美在线观看| 麻豆剧果冻传媒一二三区| 国产又粗又猛又爽色噜噜| 久久精品国产在热亚洲| 高清亚洲精品中文字幕乱码| 免费在线观看欧美喷水黄片| 亚洲第一区二区三区女厕偷拍 | 亚洲日本久久国产精品久久| 亚洲欧美日本国产有色| 天海翼高清二区三区在线| 日韩中文字幕狠狠人妻| 国产又粗又深又猛又爽又黄| 日韩女优视频国产一区| 国产一区欧美一区日韩一区| 国产亚洲精品一二三区| 99久久精品国产日本| 国产成人午夜av一区二区| 一本色道久久综合狠狠躁| 女同伦理国产精品久久久| 日韩毛片视频免费观看| 久久这里只有精品中文字幕| 好吊日视频这里都是精品| 在线观看视频日韩精品| 亚洲av熟女国产一区二区三区站| 日本福利写真在线观看| 加勒比东京热拍拍一区二区| 国产亚州欧美一区二区| 免费人妻精品一区二区三区久久久 | 欧美三级不卡在线观线看| 五月天丁香婷婷狠狠爱| 中文字幕人妻一区二区免费 | 熟妇久久人妻中文字幕| 美女极度色诱视频在线观看| 特黄大片性高水多欧美一级|