模塊是一個包含所有你定義的函式和變數的檔案,其后綴名是.py,模塊可以被別的程式引入,以使用該模塊中的函式等功能,
模塊名要遵循Python變數命名規范,不要使用中文、特殊字符
先查看系統是否已存在該模塊,檢查方法是在Python互動環境執行import abc,若成功則說明系統存在此模塊
一、import陳述句
- import moudle_name :匯入指定的py檔案,此時這個py檔案被認為是一個模塊,當前腳本檔案可以呼叫模塊中定義好的引數和函式
- import module_name as newname :此語法可以用來簡化模塊名稱,方便隨時呼叫
- from modname import name : 從模塊中匯入一個指定的部分到當前命名空間中,而不是匯入整個模塊
- from modname import * : 此語法把一個模塊的所有內容全都匯入到當前的命名空間,但是其會被認為是一種“拙劣實踐”
一個模塊只會被匯入一次,不管執行了多少次import,這樣可以防止匯入模塊被一遍又一遍地執行,在notebook中體現為第一次匯入時會執行一下檔案中的陳述句,后面再匯入則不會
在較大的模塊中有很多引數與函式,為了不與當前檔案中變數名混淆,最好在呼叫時使用modname.name的結構
import numpy as np
list1 = np.arange(10)
print(list1)
#[0 1 2 3 4 5 6 7 8 9]
二、搜索路徑
當解釋器遇到 import 陳述句,如果模塊在當前的搜索路徑就會被匯入, 搜索路徑是一個解釋器會先進行搜索的所有目錄的串列,是由一系列目錄名組成的,Python解釋器就依次從這些目錄中去尋找所引入的模塊
搜索路徑是在Python編譯或安裝的時候確定的,安裝新的庫應該也會修改,搜索路徑被存盤在sys模塊中的path變數
sys.path 輸出是一個串列,其中第一項是空串'',代表當前目錄,即我們執行python解釋器的目錄,對于腳本的話就是運行的腳本所在的目錄
import sys
sys.path
['',
'D:\software\Anaconda3\python36.zip',
'D:\software\Anaconda3\DLLs',
'D:\software\Anaconda3\lib',
'D:\software\Anaconda3',
'D:\software\Anaconda3\lib\site-packages',
'D:\software\Anaconda3\lib\site-packages\win32',
'D:\software\Anaconda3\lib\site-packages\win32\lib',
'D:\software\Anaconda3\lib\site-packages\Pythonwin',
'D:\software\Anaconda3\lib\site-packages\IPython\extensions',
'C:\Users\wanyu\.ipython']
三、'main'
當.py檔案被直接運行時,if __name__ ==’__main__'之下的代碼塊將被運行;當.py檔案以模塊形式被匯入時,if __name__ == '__main__'之下的代碼塊不被運行
if __name__ == '__main__':
pass # 所需要執行的陳述句
# python學習交流群:711312441
四、作用域
在模塊中定義的函式與變數一般分為外部不需要的和需要的,外部需要的定義為public,正常定義即可,外部不需要的定義成private,即在變數名前加_或__
五、包
包是一種管理 Python 模塊命名空間的形式,采用"點模塊名稱"使用模塊的時候,不用擔心不同模塊之間的全域變數相互影響,采用點模塊名稱這種形式也不用擔心不同庫之間的模塊重名的情況
目錄只有包含一個叫做__init__.py的檔案才會被認作是一個包
__init__.py可以是空檔案,也可以有Python代碼,因為其本身就是一個模塊
一般推薦使用from Package import specific_submodule陳述句來匯入包中的模塊
六、模塊通用函式
dir()函式
內置的函式 dir() 可以找到模塊內定義的所有名稱,以一個字串串列的形式回傳
如果沒有給定引數,那么 dir() 函式會羅列出當前定義的所有名稱
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/540723.html
標籤:其他
上一篇:Python爬蟲學習:Cookie 和 Session 的區別是什么?
下一篇:python中主要的英語單詞匯總
