Python模塊

使用模塊

python本身內(nèi)置了很多有用的模塊献雅,可以立刻使用侨舆。

如:內(nèi)建的sys模塊拾酝。編寫(xiě)一個(gè)test的模塊

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

' a test module '

__author__ = 'Michael Liao'

import sys
def test():
    args = sys.argv
    if len(args) == 1:
        print('Hello, world!')
    elif len(args) == 2:
        print('Hello, %s' % args[1])
    else:
        print('Too many arguments!')

if __name__ == '__main__':
    test()

# test.py

1行注釋可以讓這個(gè)test.py文件直接在Unix/Linux/Mac上運(yùn)行组去;
2行注釋表示.py文件本身使用標(biāo)準(zhǔn)UTF-8編碼爷抓;
4行是一個(gè)字符串势决,表示模塊的文檔注釋?zhuān)魏文K代碼的第一個(gè)字符串都被視為模塊的文檔注釋?zhuān)?br> 第6行使用__author__變量把作者寫(xiě)進(jìn)去,這樣當(dāng)你公開(kāi)源代碼后別人就可以瞻仰你的大名蓝撇;
以上是Python模塊的標(biāo)準(zhǔn)文件模板果复,當(dāng)然也可以全部刪掉不寫(xiě),但是渤昌,按標(biāo)準(zhǔn)辦事肯定沒(méi)錯(cuò)虽抄。
8import sys是導(dǎo)入sys模塊。
導(dǎo)入sys模塊后独柑,就有了變量sys指向該模塊极颓,利用sys變量,可以訪問(wèn)sys模塊的所有功能群嗤。
sys模塊中有一個(gè)argv變量菠隆,用list存儲(chǔ)了命令行的所有參數(shù)。argv至少又一個(gè)元素,因?yàn)榈谝粋€(gè)參數(shù)永遠(yuǎn)是該.py文件的名稱(chēng)骇径。

if __name__ == '__main__':
    test()

當(dāng)運(yùn)行test模塊文件時(shí)躯肌,python解釋器把一個(gè)特殊變量__name__置為__main__,若在其他地方導(dǎo)入test模塊時(shí)破衔,if判斷將失敗清女,這種if測(cè)試可以讓 一個(gè)模塊快通過(guò)命令行運(yùn)行時(shí)執(zhí)行一些額外的代碼,最常見(jiàn)的是運(yùn)行測(cè)試晰筛。

$ python test.py
Hello, world!
$ python test.py Michael
Hello, Michael!
作用域

在python中嫡丙,通過(guò)_前綴來(lái)實(shí)現(xiàn)。

正常的函數(shù)和變量名是公開(kāi)的读第,可被直接引用:abs曙博,x123PI等怜瞒;
__xx__是特殊變量父泳,可以直接引用,但是又特殊用途吴汪,設(shè)置變量的時(shí)候一般不用這種變量名惠窄。
_xxx__xxx的函數(shù)或者變量是非公開(kāi)的,不應(yīng)該被直接引用漾橙,如_abc杆融,__abc等;
_xxx__xxx的函數(shù)或變量霜运,若引用脾歇,需要使用被公開(kāi)的函數(shù)或者變量,以做到訪問(wèn)非公開(kāi)的函數(shù)或變量觉渴,如:

def _private_1(name):    # 被隱藏的函數(shù)1
    return 'Hello, %s' % name
def _private_2(name):    # 被隱藏的函數(shù)2
    return 'Hi, %s' % name

def greeting(name):    # 公開(kāi)的函數(shù)
    if len(name) > 3:
        return _private_1(name)    # 調(diào)用被隱藏的函數(shù)1
    else:
        return _private_2(name)    # 調(diào)用被隱藏的函數(shù)2
安裝第三方模塊

python中介劫,安裝第三方模塊,通過(guò)包管理工具pip完成案淋。

若使用的是Mac或Linux座韵,安裝pip本身可以跳過(guò),若使用的是Windows踢京,參考安裝Python的內(nèi)容誉碴,確保安裝勾選了pipAdd python.exe to Path。驗(yàn)證方式:cmd命令提示符下運(yùn)行pip命令瓣距,若提示未找到命令黔帕,重新運(yùn)行安裝程序添加pip

如:我們要安裝一個(gè)第三方庫(kù)——Python Imaging Library蹈丸,這是Python下非常強(qiáng)大的處理圖像的工具庫(kù)成黄。不過(guò)呐芥,PIL目前只支持到Python 2.7,并且有年頭沒(méi)有更新了奋岁,因此思瘟,基于PIL的Pillow項(xiàng)目開(kāi)發(fā)非常活躍闻伶,并且支持最新的Python 3滨攻。
一般來(lái)說(shuō),第三方庫(kù)都會(huì)在Python官方的pypi.python.org網(wǎng)站注冊(cè)蓝翰,要安裝一個(gè)第三方庫(kù)光绕,必須先知道該庫(kù)的名稱(chēng),可以在官網(wǎng)或者pypi上搜索畜份,比如Pillow的名稱(chēng)叫Pillow诞帐,因此,安裝Pillow的命令就是:

pip install Pillow

耐心等待下載并安裝后漂坏,就可以使用Pillow了

安裝常用模塊

在使用Python時(shí)景埃,我們經(jīng)常需要用到很多第三方庫(kù)媒至,例如顶别,上面提到的Pillow,以及MySQL驅(qū)動(dòng)程序拒啰,Web框架Flask驯绎,科學(xué)計(jì)算Numpy等。用pip一個(gè)一個(gè)安裝費(fèi)時(shí)費(fèi)力谋旦,還需要考慮兼容性剩失。我們推薦直接使用Anaconda,這是一個(gè)基于Python的數(shù)據(jù)處理和科學(xué)計(jì)算平臺(tái)册着,它已經(jīng)內(nèi)置了許多非常有用的第三方庫(kù)拴孤,我們裝上Anaconda,就相當(dāng)于把數(shù)十個(gè)第三方模塊自動(dòng)安裝好了甲捏,非常簡(jiǎn)單易用演熟。

可以從Anaconda官網(wǎng)下載GUI安裝包,安裝包有500~600M司顿,所以需要耐心等待下載芒粹。下載后直接安裝,Anaconda會(huì)把系統(tǒng)Path中的python指向自己自帶的Python大溜,并且化漆,Anaconda安裝的第三方模塊會(huì)安裝在Anaconda自己的路徑下,不影響系統(tǒng)已安裝的Python目錄钦奋。

安裝好Anaconda后座云,重新打開(kāi)命令行窗口疙赠,輸入python,可以看到Anaconda的信息:
可以嘗試直接import numpy等已安裝的第三方模塊朦拖。

模塊搜索路徑

默認(rèn)情況下棺聊,Python解釋器會(huì)搜索當(dāng)前目錄、所有已安裝的內(nèi)置模塊和第三方模塊贞谓,搜索路徑存放在sys模塊的path變量中:

>>> import sys
['', 'D:\\Anaconda3\\python37.zip', 'D:\\Anaconda3\\DLLs', 'D:\\Anaconda3\\lib', 
'D:\\Anaconda3', 'D:\\Anaconda3\\lib\\site-packages', 'D:\\Anaconda3\\lib\\site-packages\\win32',
 'D:\\Anaconda3\\lib\\site-packages\\win32\\lib', 'D:\\Anaconda3\\lib\\site-packages\\Pythonwin']

若添加自己的搜索目錄限佩,有兩種方式:

  1. 直接修改sys.path,添加要搜索的目錄:
>>> import sys
>>> sys.path.append('需要添加到搜索的目錄')
# 運(yùn)行時(shí)修改裸弦,運(yùn)行結(jié)束后失效
  1. 設(shè)置環(huán)境變量PYTHONPATH祟同,該環(huán)境變量的內(nèi)容會(huì)被自動(dòng)添加到模塊快搜索路徑中。設(shè)置方式與設(shè)置Path環(huán)境變量類(lèi)似理疙。注意:只需要添加自己的搜索路徑晕城,Python自己本身的搜索路徑不受影響
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
禁止轉(zhuǎn)載,如需轉(zhuǎn)載請(qǐng)通過(guò)簡(jiǎn)信或評(píng)論聯(lián)系作者窖贤。
  • 序言:七十年代末砖顷,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子赃梧,更是在濱河造成了極大的恐慌滤蝠,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件授嘀,死亡現(xiàn)場(chǎng)離奇詭異物咳,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)蹄皱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評(píng)論 2 381
  • 文/潘曉璐 我一進(jìn)店門(mén)览闰,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人巷折,你說(shuō)我怎么就攤上這事压鉴。” “怎么了锻拘?”我有些...
    開(kāi)封第一講書(shū)人閱讀 153,340評(píng)論 0 344
  • 文/不壞的土叔 我叫張陵油吭,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我逊拍,道長(zhǎng)上鞠,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 55,449評(píng)論 1 279
  • 正文 為了忘掉前任芯丧,我火速辦了婚禮芍阎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘缨恒。我一直安慰自己谴咸,他們只是感情好轮听,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,445評(píng)論 5 374
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著岭佳,像睡著了一般血巍。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上珊随,一...
    開(kāi)封第一講書(shū)人閱讀 49,166評(píng)論 1 284
  • 那天述寡,我揣著相機(jī)與錄音,去河邊找鬼叶洞。 笑死鲫凶,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的衩辟。 我是一名探鬼主播螟炫,決...
    沈念sama閱讀 38,442評(píng)論 3 401
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼艺晴!你這毒婦竟也來(lái)了昼钻?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,105評(píng)論 0 261
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤封寞,失蹤者是張志新(化名)和其女友劉穎然评,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體钥星,經(jīng)...
    沈念sama閱讀 43,601評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡沾瓦,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,066評(píng)論 2 325
  • 正文 我和宋清朗相戀三年满着,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了谦炒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,161評(píng)論 1 334
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡风喇,死狀恐怖宁改,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情魂莫,我是刑警寧澤还蹲,帶...
    沈念sama閱讀 33,792評(píng)論 4 323
  • 正文 年R本政府宣布,位于F島的核電站耙考,受9級(jí)特大地震影響谜喊,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜倦始,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,351評(píng)論 3 307
  • 文/蒙蒙 一斗遏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鞋邑,春花似錦诵次、人聲如沸账蓉。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,352評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)铸本。三九已至,卻和暖如春遵堵,著一層夾襖步出監(jiān)牢的瞬間箱玷,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,584評(píng)論 1 261
  • 我被黑心中介騙來(lái)泰國(guó)打工陌宿, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留汪茧,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,618評(píng)論 2 355
  • 正文 我出身青樓限番,卻偏偏與公主長(zhǎng)得像舱污,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子弥虐,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,916評(píng)論 2 344