pyhton模組與包

2021-09-24 03:24:42 字數 1829 閱讀 7333

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的模組裡,對需要隱藏的屬性和...