模組是一組python**的集合,可以使用其他模組,也可以被其他模組使用。
建立自己的模組時,要注意:
你也許還想到,如果不同的人編寫的模組名相同怎麼辦?為了避免模組名衝突,python又引入了按目錄來組織模組的方法,稱為包(package)。
舉個例子,乙個abc.py
的檔案就是乙個名字叫abc
的模組,乙個xyz.py
的檔案就是乙個名字叫xyz
的模組。
現在,假設我們的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
。
類似的,可以有多級目錄,組成多級層次的包結構。比如如下的目錄結構:
mycompany
├─ web
│ ├─ __init__.py
│ ├─ utils.py
│ └─ www.py
├─ __init__.py
├─ abc.py
└─ xyz.py
檔案www.py
的模組名就是mycompany.web.www
,兩個檔案utils.py
的模組名分別是mycompany.utils
和mycompany.web.utils
。
自己建立模組時要注意命名,不能和python自帶的模組名稱衝突。例如,系統自帶了sys模組,自己的模組就不可命名為sys.py,否則將無法匯入系統自帶的sys模組。
mycompany.web
也是乙個模組,請指出該模組對應的.py檔案。
python廖雪峰教程 學習筆記
如何用字元來描述字元 d匹配數字 digit w匹配字母或數字 word s可以匹配空格 space 表示任意個字元,表示至少乙個字元 表示0個或1個字元,表示n個字元,表示n m個字元 可以匹配任意字元 例如 kongxiangyu w如何做到更精確的匹配?規定數字 字母或者下劃線 0 9a za...
Git 廖雪峰 學習筆記
目錄 git工作區域 git初始化及倉庫建立和操作 初始化新的git倉庫 1.新建資料夾 2.在檔案內初始化git 如何將本地倉庫同步到git 遠端倉庫 1.關聯遠端庫 2.第一次推送master分支的所有內容 3.每次本地提交後,推送最新修改 轉殖 分支管理 1.建立與合併分支 2.解決衝突 3....
git 廖雪峰學習筆記
git的誕生 linus堅決反對cvs和svn等集中式版本控制系統 因為速度慢且需要聯網 bitmover公司授權linux社群商業軟體bitkeeper免費使用權 linus社群牛人試圖破解bitkeeper的協議被bitmover公司發現 bitmover公司收回linux社群bitkeeper...