儲存着不少經常使用功能的py文件就是一個模塊.模塊就是一系列經常使用功能的集合體python
爲何要使用模塊?app
py文件兩種功能:函數
模塊的分類code
內置模塊,也叫標準庫,此類模塊就是python 解釋器提供的,time,os等200多種接口
第三方模塊,第三方庫,各類python大神寫的很是好用的模塊,必須經過pip install指令安裝的模塊,好比Django等,大概有6000多個ip
自定義模塊,咱們本身定義的一些模塊內存
# 示例 # haha.py name = '劉德華' lst = [1, 2, 3] def fucn(): print('haha模塊', name) def change(): global name name = '張學友' def lst_append(): lst.append(4) # 這個haha.py文件就是一個模塊
引用模塊的方法開發
import使用:import 模塊名pip
每一個模塊都是一個獨立的名稱空間,定義在這個模塊中的函數,把這個模塊的名稱空間當作全局名稱空間,這樣咱們在編寫本身的模塊時,就不用擔憂咱們定義在本身模塊中的全局變量會在被導入時,與使用者的全局變量衝突.class
# 示例 # 當前是 hello.py import haha name = '劉亦菲' print(name) # 劉亦菲 print(haha.name) # 劉德華
爲導入的模塊起個別名
# 方便書寫 # 簡化代碼,能夠用於統一接口 # 當前是 hello.py import haha as wow # as後面是想改的名字 print(wow.name) # 劉德華
引入多個模塊
from ... import ... 使用: from 模塊名 import 變量名
from ... import ...引入時,也會開闢一個以模塊名命名的名稱空間,可是會把咱們想要引入的具體內容(類如變量)的對應關係複製到當前執行文件的全局名稱空間中. 注意: 由於複製的是對應關係,因此比較像淺拷貝.
# 例一 name = '劉亦菲' from haha import name print(name) # 劉德華
# 例二 from haha import name # 把模塊空間內name的對應關係複製了過來. from haha import change # 修改模塊空間內的name,可是name是不可變的數據類型,直接改變了指向. print(name) # 劉德華 ----------------------------------------------- # 例三 from haha import lst # 把模塊空間內lst的對應關係複製了過來 from haha import lst_append # 修改模塊空間內的lst,執行文件全局空間中的lst與模塊空間內的lst指向同一個內存地址 print(lst) # [1, 2, 3, 4]
引用模塊中的函數,若是此函數用到了一些變量,這些變量仍是今後模塊空間中尋找
優勢: 使用起來方便了(不用模塊名. ,而是直接使用)
缺點: 容易與當前執行文件產生覆蓋效果,至關於變量的從新賦值