為了編寫可維護的**,我們把很多函式分組,分別放到不同的檔案裡,這樣,每個檔案包含的**就相對較少,很多程式語言都採用這種組織**的方式。在python中,乙個.py檔案就稱之為乙個模組(module)。
使用模組有什麼好處?
1. 最大的好處是大大提高了**的可維護性。其次,編寫**不必從零開始。當乙個模組編寫完畢,就可以被其他地方引用。我們在編寫程式的時候,也經常引用其他模組,包括python內建的模組和來自第三方的模組。
2. 使用模組還可以避免函式名和變數名衝突。(包,模組)
python本身就內建了很多非常有用的模組,只要安裝完畢,這些模組就可以立刻使用。
作用域
1. 在乙個模組中,我們可能會定義很多函式和變數,但有的函式和變數我們希望給別人使用,有的函式和變數我們希望僅僅在模組內部使用。在python中,是通過_字首來實現的。
類似***這樣的變數是特殊變數,可以被直接引用,但是有特殊用途,比如上面的author,name就是特殊變數,hello模組定義的文件注釋也可以用特殊變數doc訪問,我們自己的變數一般不要用這種變數名。
類似_***和__***這樣的函式或變數就是非公開的(private),不應該被直接引用,比如_abc,__abc等;之所以我們說,private函式和變數「不應該」被直接引用,而不是「不能」被直接引用,是因為python並沒有一種方法可以完全限制訪問private函式或變數,但是,從程式設計習慣上不應該引用private函式或變數。
private函式常用來封裝。外部不需要引用的函式全部定義成private,只有外部需要引用的函式才定義為public。
if __name__=='__main__':
test()
當我們在命令列執行hello模組檔案時,python直譯器把乙個特殊變數name置為main,而如果在其他地方匯入該hello模組時,if判斷將失敗,因此,這種if測試可以讓乙個模組通過命令列執行時執行一些額外的**,最常見的就是執行測試。
在python中,安裝第三方模組,是通過包管理工具pip完成的。在命令提示符視窗下嘗試執行pip,如果windows提示未找到命令,可以重新執行安裝程式新增pip。、
要安裝乙個第三方庫,必須先知道該庫的名稱,可以在官網或者pypi上搜尋,比如pillow的名稱叫pillow,因此,安裝pillow的命令就是:
pip install pillow
常用的第三方庫有pillow:處理影象的工具庫,pillowmysql的驅動:mysql-connector-python,用於科學計算的numpy庫:numpy,用於生成文字的模板工具jinja2,等等。
模組搜尋路徑:預設情況下,python直譯器會搜尋當前目錄、所有已安裝的內建模組和第三方模組,搜尋路徑存放在sys模組的path變數中。
如果我們要新增自己的搜尋目錄,有兩種方法:
一是直接修改sys.path,新增要搜尋的目錄:
>>>這種方法是在執行時修改,執行結束後失效。import sys
第二種方法是設定環境變數pythonpath,該環境變數的內容會被自動新增到模組搜尋路徑中。設定方式與設定path環境變數類似。注意只需要新增你自己的搜尋路徑,python自己本身的搜尋路徑不受影響。
學習**:www.liaoxuefeng.com
python學習 使用模組
python本身就內建了很多非常有用的模組,只要安裝完畢,這些模組就可以立刻使用。我們以內建的sys模組為例,編寫乙個hello的模組 usr bin env python3 coding utf 8 a test module author michael liao importsysdeftes...
Python學習 使用模組
python本身就內建了很多非常有用的模組,只要安裝完畢,這些模組就可以立刻使用。我們以內建的sys模組為例,編寫乙個hello的模組 usr bin env python3 coding utf 8 a test module author michael liao import sys deft...
python模組使用 python 模組發布及使用
將模組 此處名為nester 寫好後,與setup.py放入同乙個資料夾中 from distutils.core importsetup setup name 發布名,一般同模組名 version 版本號 py modules 模組列表 引數,其他引數根據需求新增 構建發布檔案 在資料夾下開啟終端...