如何最簡單、通俗地理解Python的模塊役听?

說簡單點颓鲜,Python模塊就是帶.py后綴的可執(zhí)行文件,用來重復調(diào)用變量和函數(shù)典予。


比方說甜滨,你在數(shù)據(jù)分析過程中反復需要讀取CSV文件,除了使用pandas等現(xiàn)成的庫方法外瘤袖,還可以自己寫一個模塊用于調(diào)用衣摩。

# -*- coding: utf-8 -*-
import csv
desc = '這是csv讀取函數(shù)'
print(desc)
def read_csv(path):
    with open(path, newline='') as csvfile:
        reader = csv.DictReader(csvfile)
        for i in reader:
            print(i)

你只需要將上面腳本保存為.py文件,就可以通過import導入其中的read_csv函數(shù)捂敌,直接在你的代碼中進行調(diào)用艾扮。

比如我將腳本保存為readcsv.py既琴,并存放到當前文件夾里,在新的代碼中調(diào)用栏渺,只需傳入csv文件路徑名,就可以讀取相應文件锐涯。

from readcsv import read_csv
read_csv("e:\\test.csv")

得到如下結(jié)果:

這就是一個編寫好的模塊了磕诊,你可以隨時隨地進行調(diào)用,而不需要在代碼中重復編寫復雜的方法纹腌。

我們看到霎终,運行代碼后既直接使用了模塊的常量,也調(diào)用了模塊的函數(shù)升薯,這就涉及到模塊的功能定義:

Python 模塊(Module)莱褒,是一個 Python 文件,以 .py 結(jié)尾涎劈,包含了 Python 對象定義和Python語句广凸。

模塊相當于一個封裝好的工具箱,你只需要傳入相關(guān)參數(shù)蛛枚,就可以使用其中的功能谅海。

一般,大型的Python代碼項目會有很多個模塊蹦浦,能讓邏輯更清晰扭吁。

除了通過import導入外,.py模塊文件還可以作為腳本直接運行盲镶。

我們在命令行切換到腳本所在目錄侥袜,并輸入:

python readcsv.py

就可以直接執(zhí)行相應代碼:

如果你在腳本代碼中添加if __name__ == "__main__":語句,那么該語句后面的代碼只有在直接執(zhí)行腳本時生效溉贿,而import導入模塊時不被執(zhí)行枫吧。

# -*- coding: utf-8 -*-
import csv
desc = '這是csv讀取函數(shù)'
print(desc)
def read_csv(path):
    with open(path, newline='') as csvfile:
        reader = csv.DictReader(csvfile)
        for i in reader:
            print(i)

if __name__ == "__main__":
    print("直接運行腳本時生效")

這也是困惑很多人的一個問題,if __name__ == "__main__":到底有什么用?

__main__始終指當前執(zhí)行模塊的名稱(包含后綴.py)宇色。

__name__是內(nèi)置變量由蘑,當該模塊被直接執(zhí)行的時候,__name__等于文件名(包含后綴 .py )代兵。

如果該模塊 import 到其他模塊中尼酿,則該模塊的 __name__等于模塊名稱(不包含后綴.py)。

所以當直接執(zhí)行腳本時候植影,__name__ == "__main__"為真成立裳擎,可以繼續(xù)執(zhí)行后面代碼。

而當import導入模塊時候思币,__name__ == "__main__"為假鹿响,不成立羡微,無法執(zhí)行后面代碼。

這種操作常用于為模塊提供便捷用戶接口惶我,或用于測試(把模塊當作執(zhí)行測試套件的腳本運行)妈倔。

以下是python常用內(nèi)建模塊,供參考绸贡。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盯蝴,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子听怕,更是在濱河造成了極大的恐慌捧挺,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尿瞭,死亡現(xiàn)場離奇詭異闽烙,居然都是意外死亡,警方通過查閱死者的電腦和手機声搁,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門黑竞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人疏旨,你說我怎么就攤上這事摊溶。” “怎么了充石?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵莫换,是天一觀的道長。 經(jīng)常有香客問我骤铃,道長拉岁,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任惰爬,我火速辦了婚禮喊暖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘撕瞧。我一直安慰自己陵叽,他們只是感情好,可當我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布丛版。 她就那樣靜靜地躺著巩掺,像睡著了一般。 火紅的嫁衣襯著肌膚如雪页畦。 梳的紋絲不亂的頭發(fā)上胖替,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天,我揣著相機與錄音,去河邊找鬼独令。 笑死端朵,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的燃箭。 我是一名探鬼主播冲呢,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼招狸!你這毒婦竟也來了敬拓?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤瓢颅,失蹤者是張志新(化名)和其女友劉穎恩尾,沒想到半個月后弛说,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挽懦,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年木人,在試婚紗的時候發(fā)現(xiàn)自己被綠了信柿。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡醒第,死狀恐怖渔嚷,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情慨灭,我是刑警寧澤杭棵,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布闷营,位于F島的核電站,受9級特大地震影響漠吻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜司恳,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一途乃、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧扔傅,春花似錦耍共、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至荠耽,卻和暖如春鹏往,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工伊履, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留韩容,地道東北人。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓唐瀑,卻偏偏與公主長得像群凶,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子哄辣,可洞房花燭夜當晚...
    茶點故事閱讀 43,509評論 2 348

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