模塊

在計算機程序的開發(fā)過程中渡嚣,隨著程序代碼越寫越多梢睛,在一個文件里代碼就會越來越長,越來越不容易維護识椰。

為了編寫可維護的代碼绝葡,我們把很多函數(shù)分組,分別放到不同的文件里腹鹉,這樣藏畅,每個文件包含的代碼就相對較少,很多編程語言都采用這種組織代碼的方式功咒。在Python中愉阎,一個.py文件就稱之為一個模塊(Module)。

使用模塊有什么好處力奋?

最大的好處是大大提高了代碼的可維護性榜旦。其次,編寫代碼不必從零開始景殷。當一個模塊編寫完畢溅呢,就可以被其他地方引用锉走。我們在編寫程序的時候,也經(jīng)常引用其他模塊藕届,包括Python內(nèi)置的模塊和來自第三方的模塊。

使用模塊還可以避免函數(shù)名和變量名沖突亭饵。相同名字的函數(shù)和變量完全可以分別存在不同的模塊中休偶,因此,我們自己在編寫模塊時辜羊,不必考慮名字會與其他模塊沖突踏兜。但是也要注意,盡量不要與內(nèi)置函數(shù)名字沖突八秃。點這里查看Python的所有內(nèi)置函數(shù)碱妆。

你也許還想到,如果不同的人編寫的模塊名相同怎么辦昔驱?為了避免模塊名沖突疹尾,Python又引入了按目錄來組織模塊的方法,稱為包(Package)骤肛。

舉個例子纳本,一個abc.py的文件就是一個名字叫abc的模塊,一個xyz.py的文件就是一個名字叫xyz的模塊腋颠。

現(xiàn)在繁成,假設(shè)我們的abcxyz這兩個模塊名字與其他模塊沖突了,于是我們可以通過包來組織模塊淑玫,避免沖突巾腕。方法是選擇一個頂層包名,比如mycompany絮蒿,按照如下目錄存放:

mycompany
├─ __init__.py
├─ abc.py
└─ xyz.py

引入了包以后尊搬,只要頂層的包名不與別人沖突,那所有模塊都不會與別人沖突⊥晾裕現(xiàn)在毁嗦,abc.py模塊的名字就變成了mycompany.abc,類似的回铛,xyz.py的模塊名變成了mycompany.xyz狗准。

請注意,每一個包目錄下面都會有一個__init__.py的文件茵肃,這個文件是必須存在的腔长,否則,Python就把這個目錄當成普通目錄验残,而不是一個包捞附。__init__.py可以是空文件,也可以有Python代碼,因為__init__.py本身就是一個模塊鸟召,而它的模塊名就是mycompany胆绊。

類似的,可以有多級目錄欧募,組成多級層次的包結(jié)構(gòu)压状。比如如下的目錄結(jié)構(gòu):

mycompany
 ├─ web
 │  ├─ __init__.py
 │  ├─ utils.py
 │  └─ www.py
 ├─ __init__.py
 ├─ abc.py
 └─ xyz.py

文件www.py的模塊名就是mycompany.web.www,兩個文件utils.py的模塊名分別是mycompany.utilsmycompany.web.utils跟继。

自己創(chuàng)建模塊時要注意命名种冬,不能和Python自帶的模塊名稱沖突。例如舔糖,系統(tǒng)自帶了sys模塊娱两,自己的模塊就不可命名為sys.py,否則將無法導入系統(tǒng)自帶的sys模塊金吗。

mycompany.web也是一個模塊十兢,請指出該模塊對應的.py文件。

總結(jié)

模塊是一組Python代碼的集合摇庙,可以使用其他模塊纪挎,也可以被其他模塊使用。

創(chuàng)建自己的模塊時跟匆,要注意:

  • 模塊名要遵循Python變量命名規(guī)范异袄,不要使用中文、特殊字符玛臂;
  • 模塊名不要和系統(tǒng)模塊名沖突烤蜕,最好先查看系統(tǒng)是否已存在該模塊,檢查方法是在Python交互環(huán)境執(zhí)行import abc迹冤,若成功則說明系統(tǒng)存在此模塊讽营。
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市泡徙,隨后出現(xiàn)的幾起案子橱鹏,更是在濱河造成了極大的恐慌,老刑警劉巖堪藐,帶你破解...
    沈念sama閱讀 217,734評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件莉兰,死亡現(xiàn)場離奇詭異,居然都是意外死亡礁竞,警方通過查閱死者的電腦和手機糖荒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,931評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來模捂,“玉大人捶朵,你說我怎么就攤上這事蜘矢。” “怎么了综看?”我有些...
    開封第一講書人閱讀 164,133評論 0 354
  • 文/不壞的土叔 我叫張陵品腹,是天一觀的道長。 經(jīng)常有香客問我红碑,道長舞吭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,532評論 1 293
  • 正文 為了忘掉前任句喷,我火速辦了婚禮,結(jié)果婚禮上兔毙,老公的妹妹穿的比我還像新娘唾琼。我一直安慰自己,他們只是感情好澎剥,可當我...
    茶點故事閱讀 67,585評論 6 392
  • 文/花漫 我一把揭開白布锡溯。 她就那樣靜靜地躺著,像睡著了一般哑姚。 火紅的嫁衣襯著肌膚如雪祭饭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,462評論 1 302
  • 那天叙量,我揣著相機與錄音倡蝙,去河邊找鬼。 笑死绞佩,一個胖子當著我的面吹牛寺鸥,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播品山,決...
    沈念sama閱讀 40,262評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼胆建,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了肘交?” 一聲冷哼從身側(cè)響起笆载,我...
    開封第一講書人閱讀 39,153評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎涯呻,沒想到半個月后凉驻,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,587評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡复罐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,792評論 3 336
  • 正文 我和宋清朗相戀三年沿侈,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片市栗。...
    茶點故事閱讀 39,919評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡缀拭,死狀恐怖咳短,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情蛛淋,我是刑警寧澤咙好,帶...
    沈念sama閱讀 35,635評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站褐荷,受9級特大地震影響勾效,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜叛甫,卻給世界環(huán)境...
    茶點故事閱讀 41,237評論 3 329
  • 文/蒙蒙 一层宫、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧其监,春花似錦萌腿、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,855評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锌历,卻和暖如春贮庞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背究西。 一陣腳步聲響...
    開封第一講書人閱讀 32,983評論 1 269
  • 我被黑心中介騙來泰國打工窗慎, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人卤材。 一個月前我還...
    沈念sama閱讀 48,048評論 3 370
  • 正文 我出身青樓捉邢,卻偏偏與公主長得像,于是被迫代替她去往敵國和親商膊。 傳聞我的和親對象是個殘疾皇子伏伐,可洞房花燭夜當晚...
    茶點故事閱讀 44,864評論 2 354

推薦閱讀更多精彩內(nèi)容

  • 模塊 在計算機程序的開發(fā)過程中,隨著程序代碼越寫越多晕拆,在一個文件里代碼就會越來越長藐翎,越來越不容易維護。 為了編寫可...
    蓓蓓的萬能男友閱讀 236評論 0 0
  • 模塊簡介 在軟件開發(fā)過程中实幕,隨著代碼的不斷增加吝镣,在一個問價里代碼就會越來越長,不容易維護昆庇。為了編寫可維護的代碼末贾,我...
    齊天大圣李圣杰閱讀 797評論 0 0
  • 一、模塊介紹 在計算機程序的開發(fā)過程中整吆,隨著程序代碼越寫越多拱撵,在一個文件里代碼就會越來越長辉川,越來越不容易維護。 為...
    祐吢房_2c9a閱讀 345評論 1 1
  • 正文如下: 模塊 在計算機程序的開發(fā)過程中,隨著程序代碼越寫越多集索,在一個文件里代碼就會越來越長屿愚,越來越不容易維護。...
    OzanShareing閱讀 314評論 0 1
  • 在計算機程序的開發(fā)過程中务荆,隨著程序代碼越寫越多妆距,在一個文件里代碼就會越來越長,越來越不容易維護函匕。 為了編寫可維護的...
    Zhigang_Han閱讀 502評論 0 0