【Python】function、module、Package及import导入方法
計算機程序開發中,隨著程序代碼越寫越多,在一個文件里代碼就會越來越長,越來越不容易維護。
為了編寫可維護的代碼,我們把很多函數分組,分別放到不同的文件里面,這樣,這個文件包含的代碼就相對較少,很多編程語言都采用這種組織代碼的方式,下面介紹一下Python中的一些基本概念:
基本概念
函數function
將一組代碼組織到一起,實現某種功能
模塊module
為實現某種邏輯將相關連的函數寫在同一個文件里,使邏輯更清楚,這就是一個模塊
在python中文件以.py 結尾,那這個.py文件就可以稱之為模塊,說白了,就是Python文件
庫文件library
library,中文翻譯為:庫,也常稱為:庫文件
之所以此處不說是Python中的library,那是因為,本身library這個詞,一般都是針對其他的編譯型語言,比如C,C#等語言來說的。常見的C/C#等語言中的library,一般指的就是:
靜態的庫文件:xxx.a
動態的庫文件:xxx.dll
Python中module和library之間的區別
對于library和module,說白了,都是提供了一定的功能供別人調用。
從這方面來說,也可以理解為:Python中library等價于module;
只不過,Python中,很少說library,正常的話,都是說module;
包Package
為了方便管理模塊,python 中引入了包的概念
包是由關聯的多個模塊組成的目錄,在每一個包下而都有一個__init__.py文件,這個文件必須存在
否則,Python就把這個目錄當成普通目錄,而不是一個包
init.py 可以是空文件,也可是有python代碼,因為__init__.py本身就是一個模塊
?
?
import 導入
使用import 關鍵字,可以將一個包中已出現的一個或多個函數或模塊,引入到另一個python代碼中,從而實現代碼的復用
注意
1、如果是本地導入文件,直接使用:import filename
2、如果導入的是一個包,該包下面必須是有__init__.py文件才可以導入,否則報錯,有了__init__.py文件,python解析器才會把這個目錄當成是的包
使用module有什么好處呢?
最大的好處是大大提高了代碼的可維護性。其次,編寫代碼不必從零開始。當一個模塊編寫完畢,就可以被其他地方引用。我們在編寫程序的時候,也經常引用其他模塊,包括Python內置的模塊和來自第三方的模塊。
?
?
?
使用模塊還可以避免函數名和變量名沖突。相同名字的函數和變量完全可以分別存在不同的模塊中,因此,我們自己在編寫模塊時,不必考慮名字會與其他模塊沖突。但是也要注意,盡量不要與內置函數的名字沖突。
導入內置模塊一般是這樣的:
?
?
import os如果不同的人編寫的模塊名相同怎么辦?為了避免模塊沖突,Python可以按Package來導入模塊。
我們以我們經常用到的selenium包為例來講一下import的三種方法:
?
我們先看一下selenium包的目錄結構,如下圖
?
selenium包的路徑是在\Python 3.6.1\Lib\site-packages\selenium,一般第三方package都是在\Lib\site-packages\下
第一種導入模塊方法:import modelName
import webdriver driver = webdriver.Chrome() #定義一個driver變量這個時候我們發現報錯,是因為selenium包下面有多個packages,有多個webdriver.py文件,這時我們可以通過具體包去導入
import selenium.webdriver driver = selenium.webdriver.Chrome() #定義一個driver變量去selenium包目錄下你會發現我們找不到webdriver.py文件,其實我們是導入了selenium包下面的webdriver包中的__init__.py文件,如圖所示:
你可以看到這個文件里包含了各種瀏覽器的webdriver,在需要具體瀏覽器時,我們就可以自動定義webdriver,定義變量時需要用selenium.webdriver,因為我們導包時就是導入selenium.webdriver,你會發現這樣有點麻煩。
這時我們可以使用第二種導入模塊的方法:from package import modelName
from selenium import webdriver driver = webdriver.Chrome() #定義一個driver變量其實這種方法還可以導入模塊里面具體的函數:from modelName import functionName
第三種導入模塊方式:import modelName as xx
這個其實相當于將selenium.webdriver重命名,為了定義時方便
我們可以總結一下:
1.如果導入內置模塊,一般是import modelName
2.如果需要導入包里面的所有模塊,直接可以import packageName
3.如果需要導入具體包里面的模塊或者模塊里面的具體函數,使用from xx import yy
4.如果需要對導入的模塊進行簡單重命名,可以使用import modelName as xx
總結
以上是生活随笔為你收集整理的【Python】function、module、Package及import导入方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一篇文章带你快速入门JavaScript
- 下一篇: 制作github博客