Kevin的事情 2018-09-12 17:55:19 python中可以import的有module和package: 1、module 模塊 通常模塊為一個文件,直接使用 import 文件名 就可以導(dǎo)入??梢宰鳛閙odule的文件類型有".py"、".pyo"、".pyc"、".pyd"、".so"、".dll"。 2、package 包 通常包總是一個目錄,包目錄下需要有一個名為 __init__.py的文件??梢允褂胕mport導(dǎo)入包,或者from + import來導(dǎo)入包中的部分模塊。包中可以有模塊文件和子目錄,假如子目錄中也有 __init__.py 那么它就是這個包的子包了。 3、導(dǎo)入模塊的原理 假設(shè)有一個文件 people.py, # file : people.py 3.1 我們可以使用import people 把people.py作為模塊導(dǎo)入。python 解釋器在執(zhí)行到這一行時會做如下事情: 1)、為people.py中定義的對象創(chuàng)建一個命名空間,通過這個命名空間可以方位代碼中的函數(shù)和變量 2)、在命名空間中執(zhí)行代碼。即導(dǎo)入的過程也是執(zhí)行的過程。 3)、創(chuàng)建一個名為源代碼文件的對象,該對象引用模塊的名字空間,這樣就可以通過這個對象訪問模塊中的函數(shù)及變量。如: import people # 導(dǎo)入并運行模塊 people 3.2 我們還可以使用 from people import Speak的方式導(dǎo)入,from語句不創(chuàng)建一個到模塊名字空間的引用對象,而是把被導(dǎo)入模塊的一個或多個對象直接放入當(dāng)前的名字空間。 from socket import gethostname 3.3 用逗號分割模塊名稱就可以同時導(dǎo)入多個模塊: import socket, os, regex 3.4 模塊導(dǎo)入時可以使用 as 關(guān)鍵字來改變模塊的引用對象名字: import os as system 3.5 可以在模塊中定義__all__,使用from module import * 語句導(dǎo)入__all__列表中存在的對象 from語句支持使用星號(*)代表模塊中除下劃線開頭的所有對象: from socket import gethostname, socket 3.6 內(nèi)置方法 導(dǎo)入模塊時,解釋器會搜索sys.path列表,sys.path包含了module的查找路徑; sys.modules包含了當(dāng)前所load的所有的modules的dict(其中包含了builtin的modules) 每個模塊都擁有 __name__ 屬性,它是一個內(nèi)容為模塊名字的字符串。 import sys |
|