python學習(模組)

2021-03-31 08:56:29 字數 1849 閱讀 4381

模組搜尋路徑:匯入乙個叫

spam

的模組時,直譯器先在當前目錄中搜尋名為

spam.py

的檔案,然後在環境變數

pythonpath

指琮的目錄列表中搜尋,然後是環境變數

path

中的路徑列表。如果

pythonpath

沒有設定,或者檔案沒有找到,接下來搜尋安裝目錄,在

unix

中,通常是

.:/usr/local/lib/python

。實際上,直譯器由

sys.path

變數指定的路徑目錄搜尋模組,該變數初始化時預設包含了輸入指令碼(或者當前目錄),

pathpath

和安裝目錄。

包通常是使用用「圓點模組名」的結構化模組命名空間。例如,名為

a.b的模組表示了名為「

a」的包中名為「

b」的子模組。正如同用模組來儲存不同的模組架構可以避免全域性變數之間的相互衝突,使用圓點模組名儲存像

nunpy

或python imaging library

之類的不同類庫架構可以避免模組之間的命名衝突。

匯入模組時,python

通過sys.path

中的目錄列表來搜尋存放包的子目錄。

必須要有乙個__init__.py

檔案的存在,才能使python

視該目錄為乙個包;這是為了防止某些目錄使用了「string」

這樣的通用名而無意中在隨後的模組搜尋路徑中覆蓋了正確的模組。最簡單的情況下,__init__.py

可以只是乙個空檔案,不過它也可能包含了包的初始化**,或者設定了 __all__

變數.包使用者可以從包中匯入合法的模組,例如:

import sound.effects.echo

這樣就匯入了sound.effects.echo

子模組。它必需通過完整的名稱來引用。

sound.effects.echo.echofilter(input, output, delay=0.7, atten=4)

匯入包時有乙個可以選擇的方式:

from sound.effects import echo

這樣就載入了echo

子模組,並且使得它在沒有包字首的情況下也可以使用,所以它可以如下方式呼叫:

echo.echofilter(input, output, delay=0.7, atten=4)

還有另一種變體用於直接匯入函式或變數:

from sound.effects.echo import echofilter

這樣就又一次載入了echo

子模組,但這樣就可以直接呼叫它的 echofilter()

函式:

echofilter(input, output, delay=0.7, atten=4)

需要注意的是使用 from package

import item

方式匯入包時,這個子項(item

)既可以是包中的乙個子模組(或乙個子包),也可以是包中定義的其它命名,像函式、類或變數。import

語句首先核對是否包中有這個子項,如果沒有,它假定這是乙個模組,並嘗試載入它。如果沒有找到它,會引發乙個 importerror

異常。相反,使用類似import item.subitem.subsubitem

這樣的語法時,這些子項必須是包,最後的子項可以是包或模組,但不能是前面子項中定義的類、函式或變數。

python 模組學習

一 from django.contrib.auth.hashers import make password 通過函式名即可發現,主要有兩個函式,分別是建立密碼和驗證 用法ps 123456 dj ps make password ps,none,pbkdf2 sha256 建立django密碼,...

python學習 模組

time import time time.ctime 獲取當前時間的字串 time.localtime 返回值是strcut time型別的物件 st time.localtime st.tm yday 現在是今年第幾天 st.tm hour 現在是今天第幾個小時 st.tm mon 現在是今年的...

python學習 模組

一.模組包括三種 應用程式自定義模組 1.建立兩個py檔案,乙個是定義函式用的cal.py 注 如果你對python感興趣,我這有個學習python基地,裡面有很多學習資料,感興趣的 q群 688244617 def add x,y return x y另檔案test.py乙個呼叫cal.py的函式...