1.什麼是模組
模組就是工具包,要想使用這個工具包中的工具(就好比函式),就需要匯入這個模組。
模組是非常簡單的python檔案,單個python檔案就是乙個模組,兩個檔案就是兩個模組。
2.模組的匯入
模組匯入的集中方式:
1).import module1,module2
當直譯器遇到import語句,如果模組在當前的搜尋路徑就會被匯入
2).import 模組名 函式名
呼叫函式名的時候需要加上模組名,因為同乙個函式名可能存在多個模組中,如果只是通過函式名來呼叫,直譯器無法知道到底要呼叫哪個函式。
3).from 模組名 import 函式/變數名
通過這種方式引入的時候,呼叫函式時只能給出函式名,不能給出模組名,但是當兩個模組中含有相同名稱函式的時候,後面一次引入會覆蓋前一次引入。
4 ).import 長模組名 as 短模組名
from 模組名 import 長函式名 as 短函式名
如果匯入的模組名/函式名/變數名過長,可以用這種方法呼叫.
5 ).from 模組名 impor*
匯入乙個模組中的所有專案。然而這種宣告不該被過多地使用。
6 )__all__的作用
如果乙個檔案中有all變數,那麼也就意味著這個變數中的元素,不會被from *** import 時匯入
3.模組搜尋循序
當匯入乙個模組,python 解析器對模組位置的搜尋順序是:
1).當前目錄
2).如果不在當前目錄,python 則搜尋在 shell 變數 pythonpath 下的每個目錄
3).如果都找不到,python會察看預設路徑。unix下,預設路徑一般為/usr/local/lib/python/
模組搜尋路徑儲存在 system 模組的 sys.path 變數中。變數裡包含當前目錄,pythonpath和由安裝過程決定的預設目錄。
包將有聯絡的模組組織在一起,有效避免模組名稱衝突問題,讓應用組織結構更加清晰.
官方文件中的例子:
sound
|--------__init__.py
|--------effects
|---__init__.py
|---echo.py
|---reverse.py
|---.....
import sound.efforts.echo
匯入 sound.effects.echo 子模組。但必須通過完整的名稱來引用
from sound.effects import echo
載入了 echo 子模組,且使得在沒有包字首的情況下也可以使用
from sound.effects.echo import echofilter
載入了 echo 字模組,但這樣就可以直接呼叫它的 echofilter() 函式
improt*
import * 理論上是希望檔案系統找出包中所有的子模組,然後匯入它們,但是會花比較長的時間,並出現邊界效應.python 解決方案是提供乙個明確的包索引.
這個索引由init.py 定義all變數,該變數為一列表, 只會匯入指定的內容
pyhton之路 模組篇
模組迴圈匯入問題 在乙個資料夾內建立三個.py檔案,m1.py 和 m2.py 和 run.py,前兩者作為被匯入模組,run.py為執行檔案 執行檔案內容 import m1 m1模組內容 print 正在匯入m1.from m2 import y x 1 m2模組內容 print 正在匯入m2....
pyhton中常用內建模組
在pyhton中,除了上篇寫到的os和os.path模組外,還有幾個是我們在python中常用到的內建模組。一.sys模組 1.sys.ar 在python指令碼傳參使用 2.sys.exit 系統退出 3.sys.getdefaultencoding 獲取系統預設編碼 4.sys.getfiles...
python模組與包
路徑修改 命令列怎麼檢視路徑,修改路徑 列印當前搜尋路徑 import sys sys.path sys.path import os os.getcwd os.chdir c www 模組實現構建模組的初衷就是將一些同類的東西進行打包,以免汙染全域性空間,在python的模組裡,對需要隱藏的屬性和...