python导入模块--案例
1 導(dǎo)入模塊
1.1 問(wèn)題
本案例要求先編寫(xiě)一個(gè)star模塊,主要要求如下:
- 建立工作目錄 ~/bin/
- 創(chuàng)建模塊文件 ~/bin/star.py
- 模塊中創(chuàng)建pstar函數(shù),實(shí)現(xiàn)打印50個(gè)星號(hào)的功能
然后練習(xí)導(dǎo)入模塊,調(diào)用模塊中的函數(shù):
- 在交互解釋器中導(dǎo)入模塊
- 調(diào)用模塊的函數(shù)
1.2 方案
使用vim當(dāng)作文本編輯器編寫(xiě)python腳本,使用RHEL6系統(tǒng)中自帶的python解釋器加載模塊。
注意,模塊及函數(shù)在后續(xù)課程中有詳細(xì)介紹,這里只是因?yàn)榻?jīng)常要用到導(dǎo)入模塊,所以需要大致了解一下。
模塊支持從邏輯上組織python代碼。當(dāng)代碼量變得相當(dāng)大的時(shí)候,最好把代碼分成一些有組織的代碼段,前提是保證它們的彼此交互。
這些代碼段是共享的,所以python允許調(diào)入一個(gè)模塊,允許使用其他模塊的屬性來(lái)利用之前的工作成果,實(shí)現(xiàn)代碼重用。這個(gè)把其他模塊中屬性附加到你的模塊中的操作叫做導(dǎo)入(import)。
給定一個(gè)模塊名之后,只可能有一個(gè)模塊被導(dǎo)入到python解釋器中,所以在不同模塊間不會(huì)出現(xiàn)名稱交叉現(xiàn)象;每個(gè)模塊都定義了它自己的唯一的名稱空間,訪問(wèn)一個(gè)模塊的屬性可以使用句點(diǎn)表示法,比訪問(wèn)star模塊中的pstar函數(shù)的寫(xiě)法為:star.pstar()。
1.3 步驟
實(shí)現(xiàn)此案例需要按照如下步驟進(jìn)行。
步驟一:創(chuàng)建目錄結(jié)構(gòu)
Linux在執(zhí)行命令時(shí),它會(huì)到PATH環(huán)境變量定義的路徑中去查找,如果查到則執(zhí)行,如果查不到則提示命令找不到。
為了使得編寫(xiě)的腳本在任意位置可以直接執(zhí)行,并支持按TAB鍵補(bǔ)齊,最好將命令放到PATH環(huán)境變量定義的路徑中。
在Linux系統(tǒng)中,每個(gè)用戶的家目錄下的bin目錄,默認(rèn)在PATH環(huán)境變量中,但是系統(tǒng)默認(rèn)并沒(méi)有創(chuàng)建該目錄。
2)根據(jù)PATH變量?jī)?nèi)容創(chuàng)建bin目錄
步驟二:創(chuàng)建模塊文件
1)創(chuàng)建模塊文件
python的模塊名就是腳本文件名去掉.py的擴(kuò)展名,所以star模塊的文件名就是star.py。
在創(chuàng)建文件時(shí),不要使用python已有的模塊名。因?yàn)樵趇mport模塊時(shí),如果自己創(chuàng)建的模塊文件和python自帶的模塊重名,那么,用戶自己創(chuàng)建的模塊將被導(dǎo)入,用戶也就無(wú)法使用python自身的模塊了。
判斷python是否擁有某個(gè)模塊,最簡(jiǎn)單的辦法就是,進(jìn)入到python交互解釋器中,然后執(zhí)行import命令,如果提示ImportError則表示python默認(rèn)沒(méi)有該模塊。
2)編寫(xiě)pstar函數(shù)
像shell本一樣,python腳本文件的第一行也是解釋器。
在python中,使用def定義函數(shù),def后面緊跟函數(shù)名,函數(shù)名后面是一對(duì)圓括號(hào),圓括號(hào)包含可選的參數(shù)。
需要注意的是,()并不是函數(shù)名的一部分,另外最后不要丟掉冒號(hào)。在python中,如果一個(gè)關(guān)鍵字后面有子語(yǔ)句塊,那么該關(guān)鍵字的行尾都需要加冒號(hào)。
函數(shù)體部分(代碼組)必須縮進(jìn),一般縮進(jìn)4個(gè)空格,而且所有的子語(yǔ)句必須縮進(jìn)相同的空白。
函數(shù)定義只是說(shuō)有這樣的功能,并不執(zhí)行。所以該程序文件如果直接以腳本的方式執(zhí)行,那么它不會(huì)產(chǎn)生任何輸出。
步驟三:導(dǎo)入模塊并測(cè)試
在這里需要注意的是,需要在模塊文件所在的目錄下打開(kāi)交互解釋器。因?yàn)閜ython在導(dǎo)入模塊時(shí)會(huì)在固定的幾個(gè)位置去搜索模塊,如果找到則導(dǎo)入,否則將出錯(cuò)。當(dāng)前的工作目錄也是python在搜索模塊時(shí)會(huì)查找的路徑。
解釋器需要知識(shí)執(zhí)行的是哪個(gè)模塊中的函數(shù),所以寫(xiě)法應(yīng)該是:“模塊.函數(shù)”。
注意,函數(shù)名后面的圓括號(hào)不要丟掉,python調(diào)用函數(shù)使用圓括號(hào),表示執(zhí)行該函數(shù)的意思。如果沒(méi)有圓括號(hào),只是引用,不調(diào)用,也就是不會(huì)執(zhí)行該函數(shù)。
轉(zhuǎn)載于:https://www.cnblogs.com/fanfanfanlichun/p/8723450.html
總結(jié)
以上是生活随笔為你收集整理的python导入模块--案例的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: s型函数
- 下一篇: python 垃圾回收详解