自學Python6.1-模塊簡介

自學Python之路-Python基礎+模塊+面向對象
自學Python之路-Python網絡編程
自學Python之路-Python併發編程+數據庫+前端
自學Python之路-djangohtml

自學Python6.1-模塊簡介

在C語言中若是要引用sqrt這個函數,必須用語句"#include<math.h>"引入math.h這個頭文件,不然是沒法正常進行調用的。
那麼在Python中,若是要引用一些內置的函數,該怎麼處理呢?在Python中有一個概念叫作模塊(module),這個和C語言中的頭文件以及Java中的包很相似
好比在Python中要調用sqrt函數,必須用import關鍵字引入math這個模塊。前端

模塊,用一砣代碼實現了某個功能的代碼集合。 
相似於函數式編程和麪向過程編程,函數式編程則完成一個功能,其餘代碼用來調用便可,提供了代碼的重用性和代碼間的耦合。
而對於一個複雜的功能來,可能須要多個函數才能完成(函數又能夠在不一樣的.py文件中),n個 .py 文件組成的代碼集合就稱爲模塊
如:os 是系統相關的模塊。python

模塊分爲三種:web

  • 自定義模塊
  • 第三方模塊(開源模塊)
  • 內置模塊(標準庫)

一 、自定義模塊與第三方模塊(開源模塊)

1.1 若是你本身定義一個模塊,想開源提供給他們使用,是一個開源模塊的集散地 https://pypi.python.org/pypi 
數據庫

1.2 如何安裝第三方模塊?django

 方式一:yum編程

                pip  (python專用)後端

               apt-get網絡

方式二:下載源碼- 解壓源碼-進入目錄-編譯源碼- 安裝源碼python setup.py install併發

        

1.3 自定義一個模塊

 舉例,建設一個簡單的web框架

①首先建立一個Python Package文件,而不是Directory , 區別是Python Package多了一個空的_init_.py空文件(包,該文件表示容許跨目錄函數導入)

 

②在web 下面建立兩個Package   

Frontend 前端(頁面相關的東西)

Backend 後端邏輯處理 程序之間關聯度/依賴性下降,鬆耦合/解耦,由於這樣才能幾我的並行負責單獨的模塊,互相調用提升開發效率、代碼複用、專業人士開發專用模塊 只要接口一致數據庫交互查詢搜索更改增長等處理結果。

     

     

 ③ 配置文件 存數據庫鏈接信息相關、html代碼(全局)

     

在Python中,每一個Python文件均可以做爲一個模塊,模塊的名字就是文件的名字。
好比有這樣一個文件test.py,在test.py中定義了函數add:

#test.py
def add(a,b):
    return a+b

那麼在其餘文件中就能夠先import test,而後經過test.add(a,b)來調用了,固然也能夠經過from test import add來引入。

1.4 模塊的導入

①將模塊放置在同一級內

②經過路徑添加

在Python中用關鍵字import來引入某個模塊,好比要引用模塊math,就能夠在文件最開始的地方用import math來引入。在調用math模塊中的函數時,必須這樣引用:

模塊名.函數名

import math
print sqrt(2)       #這樣會報錯
print math.sqrt(2) #這樣才能正確輸出結果

註釋:爲何必須加上模塊名這樣調用呢?由於可能存在這樣一種狀況:在多個模塊中含有相同名稱的函數,此時若是隻是經過函數名來調用,解釋器沒法知道到底要調用哪一個函數。因此若是像上述這樣引入模塊的時候,調用函數必須加上模塊名。

導入模塊有一下幾種方法:

import module
from module.xx.xx import xx
from module.xx.xx import xx as rename
from module.xx.xx import *

導入模塊其實就是告訴Python解釋器去解釋那個py文件

  • 導入一個py文件,解釋器解釋該py文件
  • 導入一個包,解釋器解釋該包下的 __init__.py 文件 【py2.7】

模塊導入的路徑 

    sys.path

import sys
print (sys.path)

輸出:

['D:\\PyCharm Community Edition 2016.3.2', 'D:\\PyCharm Community Edition 2016.3.2', 'C:\\Users\\carlos.jiang\\AppData\\Local\\Programs\\Python\\Python36-32\\python36.zip', 'C:\\Users\\carlos.jiang\\AppData\\Local\\Programs\\Python\\Python36-32\\DLLs', 'C:\\Users\\carlos.jiang\\AppData\\Local\\Programs\\Python\\Python36-32\\lib', 'C:\\Users\\carlos.jiang\\AppData\\Local\\Programs\\Python\\Python36-32', 'C:\\Users\\carlos\\AppData\\Local\\Programs\\Python\\Python36-32\\lib\\site-packages']

安裝的路徑可能會有些不一樣,可是site-packages目錄是最佳選擇,故只要將模塊放入site-packages這樣的目錄中,全部程序就都能將其導入了。

若是sys.path路徑列表沒有你想要的路徑,能夠經過 sys.path.append('路徑') 添加。

import sys
import os
project_path = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(project_path)  

2、內置模塊(見下節)

相關文章
相關標籤/搜索