模塊 其實前面都說過的,不過還是系統的再說一次,相信學到這,大部分都被搞忘了吧,所以再提一下,也為後面的博文做鋪墊 1.什麼是模塊 在程式的開發過程中,隨著程式代碼越寫越多,在一個文件里代碼就會越來越長,越來越不容易維護,不斷的滾雪球式的增長。為了維護好代碼,我們把很多類和函數分組,分別放到不同的p ...
模塊
其實前面都說過的,不過還是系統的再說一次,相信學到這,大部分都被搞忘了吧,所以再提一下,也為後面的博文做鋪墊
1.什麼是模塊
在程式的開發過程中,隨著程式代碼越寫越多,在一個文件里代碼就會越來越長,越來越不容易維護,不斷的滾雪球式的增長。為了維護好代碼,我們把很多類和函數分組,分別放到不同的python可讀的py文件里,這樣就解決了問題,讓主程式文件的代碼減少,很多編程語言都採用這種組織代碼的方式,在html標簽里也一樣,把樣式寫入css里,要用的使用再鏈接css樣式表就行。而這裡的一個.py文件就稱之為一個模塊(Module)
模塊也有另一個名稱,庫,庫又分標準庫和第三方庫,而內置的庫(在安裝python時就已經帶有的庫)或者說模塊就是標準庫,而需要使用pip命令安裝的庫就叫第三方庫。
2.有哪些模塊
因為python是開源的,pypi等各大社區里也有很多能人志士不斷的開發整合各色各樣的庫(模塊)。
1)而內置的庫怎麼查看呢?
我們知道查看內置方法是用dir(__builtins__),查看庫又是什麼呢?藉助sys模塊
(只截取了部分)
sys.modules方法就可以查看所有的內置庫,會列出詳細的庫名和庫的路徑,當然如果你只想看庫名,可以使用命令sys.modules.keys()
(只截取了部分呢)
也可以使用help()函數查看:
- help()
- modules
(只截取了部分)
上面有方法是查看所有已存在的模塊的,自己去研究了
2)查看第三方模塊,在終端界面,使用pip list或者pip freeze查看
註意:使用pip list時出現的紅色欄位只是一個警告,意思是說以後pip list的預設格式會採用columns,不用在意,都能正常使用的,如果你實在看不慣可以有方法解決,詳細的自己百度吧
3.怎麼使用模塊
使用命令導入:
import XX
例:
from XX import XX
例:
當導入模塊下的方法名和其他模塊的方法名重覆,可以使用as取個別名。
比如math模塊里的sqrt和cmath模塊里的sqrt方法,例:
也可以使用from XX import * 導入模塊里的所有函數,但此法只能導入XX的類里__init__下的方法,如果是隱藏方法的話使用命令from XX import *則不能被導入
4.命名空間
什麼是命名空間,比如上面的命令from math import sqrt 中的math就是命名空間,每個空間相互獨立,互不影響,所以才會存在不同模塊有相同方法名
5.模塊的作用:
最大的好處是大大提高了代碼的可維護性。其次,編寫代碼不必從零開始。當一個模塊編寫完畢,就可以被其他地方引用。我們在編寫程式的時候,也經常引用其他模塊,包括Python內置的模塊和來自第三方的模塊。
使用模塊還可以避免函數名和變數名衝突。相同名字的函數和變數完全可以分別存在不同的模塊中,因此,我們自己在編寫模塊時,不必考慮名字會與其他模塊衝突。但是也要註意,儘量不要與內置函數名字衝突。
6.__name__= ”__main__”
我們在很多時候都會使用這段代碼,其實這個我前面也說過的。
- __name__指當前的主程式
- __main__指模塊
主程式:指當前模塊的主體程式,並不是__name__。無論當前模塊是被別的模塊導入還是作為腳本直接運行,都會執行這部分代碼
__name__,指模塊應該如何被載入,如果模塊是被另一個py文件導入,__name__的值就是py文件名。如果模塊是直接執行,__name__的值就是自身,即__main__,本模塊或者叫主體程式
註意:
所有的模塊都有能力執行代碼,只是會不會返回結果而已。建議做法是,除了真正需要導入模塊才能執行的功能外,一般功能儘量自定義函數解決;
__name__==’__main可以用來做模塊測試