python學習之模組

2021-09-30 14:08:52 字數 3759 閱讀 8672

#########模組與包######

1.模組

在 python 中,乙個.py檔案就稱之為乙個模組(module)。

•大大提高了**的可維護性;

•編寫**不必從零開始。當乙個模組編寫完畢,就可以被其他地方引用;

呼叫模組時用import 包名

eg#hello模組

def add(x,y):

return x+y

def jian(x,y):

return x-y

def ch(x,y):

return x*y

def chu(x,y):

return x/y

#呼叫hello模組

#匯入模組的三種方式

所有以.py結尾的都可以認為是乙個模組,邏輯上組織python**(函式,變數,類)

#1import hello    #直接匯入hello模組,使用方法:hello.chu(7,5)

print hello.chu(7,5)

#2from hello import chu    #匯入hello模組中的chu方法:chu(8,3)

print chu(8,3)

#3from hello import jian as myjian    #如果當前py包含add方法,但仍要使用hello模組中的add函式,可以對該函式進行重新命名

1.1匯入模組的靈活應用

新增路徑,讓路徑搜尋時匯入相應的自定義模組

in [5]: import hello        #匯入模組

in [6]: hello.add(3,4)

out[6]: 7

in [10]: sys.path.remove('/root/pycharmprojects/hello/')    #刪除搜尋路徑

1.2模組的分類

內建模組(os,sys,dnspython,socket,time,excel)

開源模組(beautifulsoup,flask,django,css,html,bootstrap,node,js)

如果不同的人編寫的模組名相同怎麼辦?為了避免模組名衝突,python 又引入了按目錄來組織模組的方法,稱為包(package)包

建立包的步驟:

建立一目錄為包名;

在該資料夾下建立__init__.py檔案存放包的資訊,該檔案可以為空;

根據需要存放指令碼檔案,已編譯的擴充套件及子包;

可以用import,import as,from import等語句匯入模組和包;

eg: 包名為hello,生成包後自動生成__init__.py檔案  模組名為hello.py   hello1.py為執行命令指令碼呼叫hello.py模組

import 其實是在解釋執行hello包的__init__.py檔案

2.作用域

在乙個模組中,我們可能會定義很多函式和變數,但有的函式和變數我們希望給別人使用,有的函式和變數我們希望僅僅在模組內部使用。

在 python 中,是通過 _ 字首來實現。比如__author__ , __name__就是特殊變數的,__func__,__fun為私有函式,不能直接引用。

3.安裝第三方模組

- 需要聯網 ;

- 通過 setuptools 這個工具完成;

- pip install 包名 或 pycharm中安裝;模組搜尋路徑

- 當我們試圖載入乙個模組時,python 會在指定的路徑下搜尋對應的.py 檔案;

- 預設情況下,python 直譯器會搜尋當前目錄、所有已安裝的內建模組和第三方模組,搜尋路徑存放在 sys 模組的 path 變數中;

python模組學習之glob模組

功能描述 glob模組可以使用unix shell風格的萬用字元匹配符合特定格式的檔案和資料夾,跟windows的檔案搜尋功能差不多。glob模組並非呼叫乙個子shell實現搜尋功能,而是在內部呼叫了os.listdir 和fnmatch.fnmatch 檢視我之前寫的fnmatch。glob模組共...

python學習之模組 模組 一

把一些常用的函式放在乙個py檔案中,這個檔案就稱之為模組。1.方便管理。讓程式的解構更加清晰,實現功能的重複使用 2.提公升開發效率。俗話說的拿來主義,避免重複造輪子,使用別人寫好的實現了某些功能的模組,可以大大提高開發效率。第一類 內建模組,也叫做標準庫。python自帶,200多個,每個模組又包...

Python模組學習之hashlib

我們可以利用這些介面簡單快速的生成雜湊值 例如 md5為例,其它的一樣 d hashlib.md5 d.update msg 使用新資料更新雜湊,d.update a 後再呼叫d.update b 與d.update a b 效果是一樣的 print d.digest 將摘要作為原始位元組字元返回 ...