国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

python面向?qū)ο笕腴T教程之從代碼復(fù)用開始(一)

2020-02-16 00:03:51
字體:
供稿:網(wǎng)友

前言

本文從代碼復(fù)用的角度一步一步演示如何從python普通代碼進(jìn)化到面向?qū)ο螅⑼ㄟ^代碼去解釋一些面向?qū)ο蟮睦碚摗K裕疚那懊娴膬?nèi)容都是非面向?qū)ο蟮恼Z法實(shí)現(xiàn)方式,只有在最結(jié)尾才給出了面向?qū)ο蟮暮唵握Z法介紹。各位道兄不妨一看,如果留下點(diǎn)筆墨指導(dǎo),本人感激不盡。

下面話不多說了,來一起看看詳細(xì)的介紹吧

最初代碼

3種動物牛Cow、羊Sheep、馬Horse發(fā)出的聲音各不相同,于是在同一個(gè)目錄下建立三個(gè)模塊文件:

$ tree ..|-- cow.py|-- horse.py`-- sheep.py

三個(gè)模塊文件的內(nèi)容都只定義了各自的speak()函數(shù):

# cow.pydef speak(): print("a cow goes moooo!")# sheep.pydef speak(): print("a sheep goes baaaah!")# horse.pydef speak(): print("a horse goes neigh!")

然后當(dāng)前目錄下在創(chuàng)建一個(gè)程序文件main.py,導(dǎo)入這三個(gè)模塊文件,分別調(diào)用這三種動物的speak()函數(shù),它們將發(fā)出不同聲音:

# main.pyimport cow,sheep,horsecow.speak()sheep.speak()horse.speak()

讓代碼更具共性的兩種基本方法

上面的cow.py、sheep.py和horse.py中,都是speak()函數(shù),不同的是函數(shù)內(nèi)容,確切地說是函數(shù)內(nèi)容中print()輸出的部分不同,它們輸出的結(jié)構(gòu)是a 動物名 goes 叫聲!。于是為了讓代碼更具共性,或者說復(fù)用性更高,可以將各模塊文件中的動物名和叫聲都變得通用化。

目前來說,有兩種最基本的方式可以讓一段代碼變得更共性、共通用化:使用參數(shù)或變量、使用額外的輔助函數(shù)。當(dāng)然,除此之外還有更多的方法,但目前來說這兩種是最基本的,也是最容易理解的。

使用參數(shù)(變量)讓代碼更具共性

首先讓動物名變得共性化。可以讓speak()中的動物名使用一個(gè)參數(shù)來替代。例如名為self的參數(shù)變量(之所以使用self,是因?yàn)樵诿嫦驅(qū)ο笾兴刑厥夂x,后文解釋),于是修改這三個(gè)模塊文件:

# cow.pydef speak(self): print("a %s goes moooo!" % (self))# sheep.pydef speak(self): print("a %s goes baaaah!" % (self))# horse.pydef speak(self): print("a %s goes neigh!" %(self))

它們現(xiàn)在在動物名上和參數(shù)名上已經(jīng)完全相同,需要調(diào)用它們時(shí),只需在函數(shù)調(diào)用處為他們傳遞不同的動物名即可。例如,在main.py中:

import cow,sheep,horsecow.speak("cow")sheep.speak("sheep")horse.speak("horse")

使用輔助函數(shù)讓代碼更具共性

除了參數(shù)(變量),還可以定義額外的函數(shù)來上面的代碼變得更具共性。例如,這三種動物的叫聲,可以額外定義一個(gè)sound()函數(shù)描述它們。于是在前面的基礎(chǔ)上繼續(xù)修改這三個(gè)模塊文件:

# cow.pydef speak(self): print("a %s goes %s!" % (self,sound()))def sound(): return "moooo"# sheep.pydef speak(self): print("a %s goes %s!" % (self,sound()))def sound(): return "baaaah"# horse.pydef speak(self): print("a %s goes %s!" % (self,sound()))def sound(): return "neigh"            
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 平泉县| 甘谷县| 平南县| 文水县| 锡林郭勒盟| 新疆| 浦县| 滁州市| 醴陵市| 宁武县| 金堂县| 芦山县| 五莲县| 宣汉县| 峨山| 浑源县| 辛集市| 英德市| 同仁县| 南皮县| 吴旗县| 社旗县| 赣州市| 甘泉县| 乌苏市| 柘城县| 山西省| 兴山县| 临漳县| 柳州市| 顺义区| 莱州市| 依安县| 汝南县| 南城县| 沛县| 陆良县| 阜新| 黑龙江省| 苍溪县| 达州市|