模塊、包

python腳本都是以擴展名py文本文件保存的,一個文件可以單獨運行,也可以導入另外一個文件運行。每個文件都是一個模塊,並且文件導入其他模塊之後就可以使用導入模塊定義的變量名。

一、模塊的導入

1、

import module

2、

from module import 函數名1,函數名2....

3、

from module import name1 as name2

二、模塊的搜索路徑

當一個python導入一個模塊module1時候,python解釋器尋找module1.py文件的順序爲:

  1. 先在當前目錄下尋找module1.py的文件
  2. 然後再從環境變量PYTHONPATH尋找
  3. 如果這環境變量沒有設定,解釋器還會在安裝預先設定的的一些目錄尋找(sys.path)
>>> import sys
>>> print sys.path
['', '/usr/local/lib/python2.7/dist-packages/MySQL_python-1.2.4-py2.7-linux-x86_64.egg', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages/PIL', '/usr/lib/python2.7/dist-packages/gst-0.10', '/usr/lib/python2.7/dist-packages/gtk-2.0', '/usr/lib/pymodules/python2.7', '/usr/lib/python2.7/dist-packages/ubuntu-sso-client', '/usr/lib/python2.7/dist-packages/ubuntuone-client', '/usr/lib/python2.7/dist-packages/ubuntuone-control-panel', '/usr/lib/python2.7/dist-packages/ubuntuone-couch', '/usr/lib/python2.7/dist-packages/ubuntuone-installer', '/usr/lib/python2.7/dist-packages/ubuntuone-storage-protocol']`

如果將module1.py不放在當前目錄,而隨便放在一個目錄下。這裏你就需要通過某種途徑,如sys.path.append(‘路徑名’),來告知Python了。
注:sys.path返回的是模塊搜索列表,那麼就是使用list的append()或insert()增加新的目錄。

三、包

創建了多個模塊後,我們可能希望將某些功能相近的文件放在同一文件夾下,這裏就需要運用包的概念了。包對應於文件夾,使用包的方式跟模塊也類似,唯一需要注意的是,當文件夾當作包使用時,文件夾需要包含_init_.py文件,主要是爲了避免將文件夾名當作普通的字符串。_init_.py的內容可以爲空,一般用來進行包的某些初始化工作或者設置_all_值,_all_是在from package-name import *這語句使用的,全部導出定義過的模塊。

import package.module

這裏package就是一個目錄,module是模塊,即package目錄下的一個module.py的文件。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章