a、模塊是一個包含全部定義的函數和變量的文件,其後綴名是.pypython
b、模塊能夠被別的程序引入,以使用該模塊中的函數等功能數據結構
#導入 c:\Python 中的 hello.py文件 import sys sys.path.append('c:/Python') #在c盤下有個模塊/程序須要導入 import hello #導入 hello.py文件
在 UNIX 系統中,不能只是簡單地將字符串'~/Python'添加到 sys.path中,必須使用完整的路徑(例如 /home/yourusername/python。),若是但願將這個操做自動完成,能夠使用 sys.path.expanduser('~/python')app
Python 3.0中使用 exec 從新載入模塊編輯器
import sys sys.path.append('F:/PythonWrokPlace') #文件所在目錄 import h,h1 #第一次導入時 h 輸出print的內容,h1在函數的模塊做用域內被定義,能夠訪問函數 h1.hello() #經過:文件名.函數的方式訪問函數
一個模塊被另外一個程序第一次引入時,其主程序將運行,若是想在模塊被引入時,模塊衆的某一程序塊不執行,能夠使用__name__屬性來使該模塊自身運行時執行函數
#定義一個h2.py,而且導入 #h2.py的具體內容 def hello(): print 'hello,world' def test(): hello() if __name__ == '__main__':test() #若是__name__的變量值是'__main__',則是做爲程序運行, # 若是爲導入模塊,則__name__的值是模塊名稱 #導入h2.py import sys sys.path.append('F:/PythonWrokPlace') import h2 h2.hello() h2.test()
搜索路徑是由一些目錄名組成的,Python解釋器就一次從這些目錄中去尋找所引入的模塊ui
#打印 sys.path 解釋器的搜索路徑 import sys,pprint pprint.pprint(sys.path) #若是數據結構過大,不能在一行打印完成,能夠使用 pprint #輸出 ['F:\\PythonWrokPlace', 'F:\\PythonWrokPlace', 'H:\\Anaconda\\python27.zip', 'H:\\Anaconda\\DLLs', 'H:\\Anaconda\\lib', 'H:\\Anaconda\\lib\\plat-win', 'H:\\Anaconda\\lib\\lib-tk', 'H:\\Anaconda', 'H:\\Anaconda\\lib\\site-packages', 'H:\\Anaconda\\lib\\site-packages\\Sphinx-1.5.1-py2.7.egg', 'H:\\Anaconda\\lib\\site-packages\\uniout-0.3.7-py2.7.egg', 'H:\\Anaconda\\lib\\site-packages\\win32', 'H:\\Anaconda\\lib\\site-packages\\win32\\lib', 'H:\\Anaconda\\lib\\site-packages\\Pythonwin', 'H:\\Anaconda\\lib\\site-packages\\setuptools-27.2.0-py2.7.egg']
Python 的 from 語句從模塊中導入yield指定的部分到當前年的命名空間中spa
from modname import name1[,name2[,...nameN]] #案例 from x import y #這聲明不會將整個 x模塊導入當前的命名空間,它只是會將 x 裏的 y函數引入進來
將一個模塊的全部內容全都導入到當前的命名空間,這種聲明不建議過多的使用code
from modname import*
內置的 dir() 能夠找到模塊內定義的全部名稱,以一個字符串列表的形式返回:ip
import sys,pprint pprint.pprint(dir(sys)) #輸出 ['__displayhook__', '__doc__', '__excepthook__', '__name__',] #省略輸入不少 #若是沒有給定的參數,那麼會羅列出當前定義的全部名稱 dir() #輸出 ['__builtins__', '__doc__', '__file__', '__name__', '__package__', 'pprint', 'sys']
a、包是一種管理 Python模塊命名空間的形式,採用"點模塊名稱",好比 A.B表示 包A中的子模塊B作用域
b、必須包含一個命名爲 __init__.py 的文件(模塊)
import copy help(copy.copy) #查看幫助信息 print '-----------' print copy.copy.__doc__ print '--------------------------' print range.__doc__ #查看幫助文檔 #使用源代碼 print copy.__file__ #查看源代碼的位置,用編輯器打開便可,若是文件名以.pyc結尾,只要查看.py結尾的文件