Python模組與包

2021-10-08 17:00:31 字數 2030 閱讀 1661

python中的模組(module),是乙個python檔案,字尾名為.py,包含了python物件定義和python語句,模組中也能定義函式、類、變數,模組裡也能包含可執行**

匯入模組

1

.import 模組名[

,模組名,模組名,..

.]2.

from 模組名 import 功能名稱[

,功能名稱,功能名稱,..

..]3

.from 模組名 import

*(匯入所有功能)4.

import 模組名 as 別名5.

from 模組名 import 功能名稱 as 別名

製作模組

在python中,每個python檔案都可以作為乙個模組,模組的名字就是檔案的名字,也就是說自定義模組名稱必須要符合識別符號命名規則

模組測試

在實際開發中,當乙個開發人員寫完乙個模組後,為了模組能夠在專案中達到想要的效果,這個開發人員必須在建立這個模組中的功能時,需要對模組中的每個功能進行測試

一般情況下測試方案很多:、

重新建立乙個測試python檔案,然後倒入模組呼叫功能測試

直接也可以在模組檔案中直接進行測試,但是如果稍不注意會導致測試的**在應用場景中被呼叫

其實測試的目標指的是如果直接在模組中測試,相當於只有在模組中執行的時候才執行模組中的測試**

__name__:是檢視當前的執行的函式名稱

__mian__:指的是主函式名稱

模組的定位順序

當匯入乙個模組,python解析器對模組的位置的搜尋順序是:

當前目錄

如果不在當前目錄,python則搜尋在shell變數pythonpath下的每個目錄

如果都找不到,python會檢視預設路徑。unix下,預設路徑/user/local/lib/python

windows下:預設路徑當前python.exe裡面的lib

模組搜尋路徑儲存在system模組的sys.path變數中。變數包含當前目錄,pythonpath由安裝過程決定

注意

自己的檔名不要和已有模組的檔名重複,否則會導致模組功能無法使用

使用from 模組名 import功能的時候,如果功能名字重複,呼叫到的是最後定義的或匯入的功能

匯入了模組之後的程式**中的變數一般不能和模組的名稱一致,否自在呼叫模組的時候,這個名稱已經是變數了,不在是模組,因為python中的變數是引用

__all__的使用

如果乙個模組檔案中有__all__變數,當使用from *** import

*匯入時,只能匯入這個列表中的元素,指的是將萬用字元(

*)進行新增篩選

通過all進行對*進行篩選,只有被篩選中的all裡面的功能才是*能夠代替的

包將有聯絡的模組組織在一起,放在同乙個資料夾下面,並且在這個資料夾裡面建立乙個名字為__init__.py檔案,那麼這個資料夾就稱之為包

製作包

專案中右鍵【new】-【python package】-包名-【ok】

注意:包是否建立正確,檢查在包建立好之後是否自動建立乙個init.py檔案,

__init__檔案的作用:控制著包的匯入行為

匯入包

import 包名.模組名

包名.模組名.功能名

##和模組的匯入一樣

from 包名 import 模組名,模組名,..

....

from 包名 import

*import 包名.模組名 as 命名

#__init__作用

init檔案的作用類似於模組中的_all_的作用,在init檔案中同樣新增一行__all__對應的列表中,可以選擇被匯入的模組的名字

萬用字元自動篩選這些模組

python模組與包

路徑修改 命令列怎麼檢視路徑,修改路徑 列印當前搜尋路徑 import sys sys.path sys.path import os os.getcwd os.chdir c www 模組實現構建模組的初衷就是將一些同類的東西進行打包,以免汙染全域性空間,在python的模組裡,對需要隱藏的屬性和...

python 模組與包

模組與包 1.什麼是模組 在 python 中,乙個.py檔案就稱之為乙個模組 module 模組的優點 大大提高了 的可維護性 編寫 不必從零開始。當乙個模組編寫完畢,就可以被其他地方引用 2.匯入模組的幾種方式 4.模組的分類 1 內建模組 os,sys,dnspython,socket,tim...

python包與模組

python模組 py檔案就是模組 1.在同乙個工作目錄 呼叫其他模組裡面的方法一 import module 呼叫 module.function 注意 此時import module時,在執行當前 時,會先執行被import的module裡的 import module as m1 別名,類似w...