云計(jì)算開(kāi)發(fā)學(xué)習(xí)筆記:Python3 import語(yǔ)句
掃描二維碼
隨時(shí)隨地手機(jī)看文章
想使用 Python 源文件,只需在另一個(gè)源文件里執(zhí)行 import 語(yǔ)句,語(yǔ)法如下:
當(dāng)解釋器遇到 import 語(yǔ)句,如果模塊在當(dāng)前的搜索路徑就會(huì)被導(dǎo)入。
搜索路徑是一個(gè)解釋器會(huì)先進(jìn)行搜索的所有目錄的列表。如想要導(dǎo)入模塊 support,需要把命令放在腳本的頂端:
test.py 引入 support 模塊:
以上實(shí)例輸出結(jié)果:
一個(gè)模塊只會(huì)被導(dǎo)入一次,不管你執(zhí)行了多少次import。這樣可以防止導(dǎo)入模塊被一遍又一遍地執(zhí)行。當(dāng)我們使用import語(yǔ)句的時(shí)候,Python解釋器是怎樣找到對(duì)應(yīng)的文件的呢?
這就涉及到Python的搜索路徑,搜索路徑是由一系列目錄名組成的,Python解釋器就依次從這些目錄中去尋找所引入的模塊。這看起來(lái)很像環(huán)境變量,事實(shí)上,也可以通過(guò)定義環(huán)境變量的方式來(lái)確定搜索路徑。
搜索路徑是在Python編譯或安裝的時(shí)候確定的,安裝新的庫(kù)應(yīng)該也會(huì)修改。搜索路徑被存儲(chǔ)在sys模塊中的path變量,做一個(gè)簡(jiǎn)單的實(shí)驗(yàn),在交互式解釋器中,輸入以下代碼:
sys.path 輸出是一個(gè)列表,其中第一項(xiàng)是空串'',代表當(dāng)前目錄(若是從一個(gè)腳本中打印出來(lái)的話(huà),可以更清楚地看出是哪個(gè)目錄),亦即我們執(zhí)行python解釋器的目錄(對(duì)于腳本的話(huà)就是運(yùn)行的腳本所在的目錄)。
因此若像我一樣在當(dāng)前目錄下存在與要引入模塊同名的文件,就會(huì)把要引入的模塊屏蔽掉。了解了搜索路徑的概念,就可以在腳本中修改sys.path來(lái)引入一些不在搜索路徑中的模塊?,F(xiàn)在,在解釋器的當(dāng)前目錄或者 sys.path 中的一個(gè)目錄里面來(lái)創(chuàng)建一個(gè)fibo.py的文件,代碼如下:
然后進(jìn)入Python解釋器,使用下面的命令導(dǎo)入這個(gè)模塊:
這樣做并沒(méi)有把直接定義在fibo中的函數(shù)名稱(chēng)寫(xiě)入到當(dāng)前符號(hào)表里,只是把模塊fibo的名字寫(xiě)到了那里。
可以使用模塊名稱(chēng)來(lái)訪(fǎng)問(wèn)函數(shù):
如果你打算經(jīng)常使用一個(gè)函數(shù),你可以把它賦給一個(gè)本地的名稱(chēng):