python學習-基礎-模組
阿新 • • 發佈:2019-01-14
# 模組 使用模組有什麼好處? # 最大的好處是大大提高了程式碼的可維護性 當一個模組編寫完畢,就可以被其他地方引用。 使用模組還可以避免函式名和變數名衝突. # # 現在,假設我們的abc和xyz這兩個模組名字與其他模組衝突了, # 於是我們可以通過包來組織模組,避免衝突。方法是選擇一個頂層包名,比如mycompany,按照如下目錄存放: # mycompany # ├─ __init__.py # ├─ abc.py # └─ xyz.py # # # 引入了包以後,只要頂層的包名不與別人衝突,那所有模組都不會與別人衝突。現在,abc.py模組的名字就變成了mycompany.abc,類似的,xyz.py的模組名變成了mycompany.xyz。 #請注意,每一個包目錄下面都會有一個__init__.py的檔案,這個檔案是必須存在的, #否則,Python就把這個目錄當成普通目錄,而不是一個包。__init__.py可以是空檔案,也可以有Python程式碼, #因為__init__.py本身就是一個模組,而它的模組名就是mycompany。 #類似的,可以有多級目錄,組成多級層次的包結構。比如如下的目錄結構: #檔案www.py的模組名就是mycompany.web.www,兩個檔案utils.py的模組名分別是mycompany.utils和mycompany.web.utils。 # mycompany # ├─ web # │ ├─ __init__.py # │ ├─ utils.py # │ └─ www.py # ├─ __init__.py # ├─ abc.py # └─ xyz.py # # 作用域 # 類似_xxx和__xxx這樣的函式或變數就是非公開的(private),不應該被直接引用,比如_abc,__abc等 # 類似__xxx__這樣的變數是特殊變數,可以被直接引用,但是有特殊用途,比如上面的__author__,__name__就是特殊變數,一般不要用這種變數名; # # 安裝第三方模組 包管理工具pip # # pip install xxx # # 推薦直接使用Anaconda,這是一個基於Python的資料處理和科學計算平臺,它已經內建了許多非常有用的第三方庫,我們裝上Anaconda,就相當於把數十個第三方模組自動安裝好了,非常簡單易用。 # # 安裝好Anaconda後,重新開啟命令列視窗,輸入python,可以看到Anaconda的資訊 # # 然後可以開始嘗試直接import numpy等已安裝的第三方模組。 # # #模組搜尋路徑 # 預設情況下,Python直譯器會搜尋當前目錄、所有已安裝的內建模組和第三方模組,搜尋路徑存放在sys模組的path變數中: # # 如果我們要新增自己的搜尋目錄,有兩種方法: # 一是直接修改sys.path,新增要搜尋的目錄: import sys sys.path.append('/Users/michael/my_py_scripts') 這種方法是在執行時修改,執行結束後失效。 # 第二種方法是設定環境變數PYTHONPATH,該環境變數的內容會被自動新增到模組搜尋路徑中。設定方式與設定Path環境變數類似。注意只需要新增你自己的搜尋路徑,Python自己本身的搜尋路徑不受影響。 # #