python學習28(模塊)
阿新 • • 發佈:2018-12-13
pytho 進行 部分 的區別 .py 重新 python安裝 方式 pat
模塊
程序引入模塊路徑要求:
1、模塊和程序在同一個目錄下
2、模塊在pythonpath(環境變量)下
3、模塊在python安裝目錄下的lib/site-packages下
程序導入模塊的方式
1?相同目錄
2?sys.path.append來添加
3?環境變量的pythonpath指定路徑,必須重啟cmd
4?在python安裝路徑下的site-packages的目錄下添加
1、相同目錄導入模塊
bb 和程序在同一個目錄
#encoding=utf-8
import bb
print(bb.var)
print(bb.add(2,3))
2、通過sys.path.append()添加模塊目錄
#encoding=utf-8
import sys
sys.path.append("c:\\")
import bb
print(bb.var)
print(bb.add(2,3))
3、在python安裝路徑下的site-packages的目錄下添加模塊
#encoding=utf-8
import bb
print(bb.var)
print(bb.add(2,3))
4、配置環境變量的pythonpath路徑
var = 10000
def add(a,b):
return a + b
import 導入模塊
import導入整個模塊內容
想要使用另一.py文件中的屬性或方法,必須導入該.py文件的源代碼,import 語句,語法如下:
import module1[, module2[,... moduleN]
也就是說,使用import可以一次性導入多個模塊,模塊間以逗號分隔。當解釋器遇到import語句,並且要導入的模塊在當前搜索的路徑,該模塊就會被導入。搜索路徑是一個解釋器會先進行搜索的所有目錄列表。比如如果想導入模塊test.py,最規範的做法是把命令放在腳本的頂端
from ... import ....導入模塊
from語句讓你從模塊中導入一個指定的部分到當前命名空間中,也就是執行的.py文
件的命名空間中
語法如下:
from modname import name1[, name2[,... nameN]]
如:from math import sqrt
這個聲明不會把整個math模塊導入到當前的命名空間,它只會把math模塊中的sqrt
函數導入到執行這個聲明的模塊的全局符號表中。
reload 導入模塊
表示重新導入已導入過的模塊
import gloryroad.gr
Print (gloryroad.gr.add(1,2))
reload(gloryroad.gr)
print (gloryroad.gr.add(4,2))
說明:
使用reload()的時候,有一些標準。首先:模塊必須是全部被導入,也就是必須是使用import導入的模塊。其次:模塊必須被導入成功。然後:reload()參數必須是模塊自身,而不是包含模塊名的字符串。也就是說,必須是reload(math),而不是reload(‘math’)。
最後:reload()再次導入的模塊,會再次被執行,跟import不同。
import和from…import…的區別
1. import導入的是一整個模塊,而from…import…導入的卻是模塊中某些特定的內容。
2. import導入的內容是存放在模塊命名空間中的,而from…import…卻是存放在當前命名空間中的。
3. 使用import導入的模塊,訪問其中的屬性與方法時,需要使用模塊名.方法名(或屬性名等)。
4. 使用from…import…導入的模塊,由於是導入到當前的命名空間中的,所以只需要直接使用屬性名或方法名即可。
5. 當導入的多個模塊中含有同名方法或屬性時,如果使用import導入,後導入的同名方法或屬性不會覆蓋先導入的其他模塊中的同名的方法或屬性;如果使用from…import…導入的,後導入的同名屬性或方法會覆蓋最先導入的其他模塊中的同名方法或屬性。
說明:
1. 導入模塊的語句最規範的做法是放在腳本的頂端,當然也可以在需要的地方直接導入需要的模塊。
2. 導入一個模塊時,模塊中頂格寫的代碼(也就是沒有縮進的代碼)都會被執行一遍。
3. 一個模塊只會被導入一次,而且是最早導入的那次,不管你執行了多少次import語句,這樣是為了防止導入的模塊被一遍又一遍的執行。
4. reload()導入後,模塊中頂格代碼仍會被執行一次。
導入時候定位模塊的順序
當導入一個模塊時,Python解析器會去搜索該模塊存在的位置,其搜索順序為:
1、當前目錄
2、如果不在當前目錄,Python 則搜索在 shell 變量 PYTHONPATH 下的每個目錄。(需要本地電腦設置PYTHONPATH環境變量)
3、如果都找不到,python會查安裝路徑lib下的site-packages。Unix下,默認路徑一般是/usr/local/python/。
模塊搜索路徑存儲在system模塊的sys.path變量中。變量裏包含當前目錄,
PYTHONPATH由安裝過程決定的默認目錄。
python學習28(模塊)