Python模塊相關(guān)知識(shí)點(diǎn)小結(jié)
本文實(shí)例講述了Python模塊相關(guān)知識(shí)點(diǎn)。分享給大家供大家參考,具體如下:
1.模塊:
定義:用來(lái)從邏輯上組織python代碼(變量,函數(shù),類,邏輯:實(shí)現(xiàn)一個(gè)功能),本質(zhì)就是以.py結(jié)尾的python文件(文件名:test.py,對(duì)應(yīng)的模塊名:test)。
包:用來(lái)從邏輯上組織模塊的,本質(zhì)就是文件夾(目錄),必須帶有一個(gè)__init__.py文件。
導(dǎo)入包的本質(zhì)就是解釋這個(gè)包下面的__init__.py文件。
在某個(gè)模塊下需要導(dǎo)入某一個(gè)包下面的內(nèi)容,需要在包下面的__init__.py文件中修改導(dǎo)入方式,語(yǔ)法為:from . import module_name #.表示當(dāng)前路徑下
模塊導(dǎo)入方法:
Import module_name(模塊名)===>>實(shí)質(zhì)導(dǎo)出的是模塊名稱 name.test()Import module_name,m1,m2from module(模塊) import * (函數(shù))===>實(shí)質(zhì)是把代碼復(fù)制到當(dāng)前位置(不建議 )from module import module_name,m1,m2 from module import module_name as modele_name_from_wfb (as取別名)
import本質(zhì)(路徑搜索和搜索路徑):
(1)Import module_name ===》把導(dǎo)入的模塊的全部代碼統(tǒng)一解釋一遍,然后賦值給module_name這個(gè)變量,例如:module_name=”modele_name.py all code'。【module_name.name】
Import module_name---->執(zhí)行module_name.py---->module_name.py的路徑---sys.path
(2)from module import module_name ==》把module 模塊中的module_name部分放到當(dāng)前文件執(zhí)行一遍。【name()】
總結(jié):導(dǎo)入模塊的本質(zhì)就是把python文件解釋一遍。
2.導(dǎo)入不在同一目錄下的文件或者包:
由于導(dǎo)入模塊或包的實(shí)質(zhì)是在系統(tǒng)的環(huán)境變量(路徑)下尋找所導(dǎo)入的文件或者是否存在,存在即可正確執(zhí)行,否則則需要將文件或者包的絕對(duì)路徑動(dòng)態(tài)加入到系統(tǒng)的環(huán)境變量中。使用sys,os模塊
Import sys,oslujin=os.path.dirname(os.path.abspath(__file__)) Sys.path.append(lujin)
目的是:在當(dāng)前文件中獲得指定文件或包的路徑(父級(jí)目錄)。
解釋:
os.path.abspath(__file__) 獲取當(dāng)前文件的絕對(duì)路徑
os.path.dirname:獲取當(dāng)前文件的父級(jí)目錄。
Sys.path.append(lujin):將所獲取的路徑加入到系統(tǒng)環(huán)境變量中。
3.導(dǎo)入優(yōu)化
(1) Import module_name
module_name.name()。。
實(shí)質(zhì):先找模塊,在找該模塊下的方法.【查找多了效率不高。】
(2) from module_name import name
name() 。。
實(shí)質(zhì):把模塊中的方法拿到指定位置執(zhí)行一遍。相比import少了多次查找的過(guò)程.
4.模塊分類
a.標(biāo)準(zhǔn)庫(kù)(內(nèi)置)
1. time 和datetime.
gmtime():獲取標(biāo)準(zhǔn)時(shí)間(0時(shí)區(qū))
localtime():獲取本地時(shí)間(東八區(qū))
time.strftime('%Y-%m-%d %H:%M:%S',time.gmtime()) # %Y對(duì)應(yīng)tm_year %m對(duì)應(yīng)tm.mon
5.json和pickle模塊
Json模塊提供了四個(gè)功能:dumps、dump、loads、load
pickle模塊提供了四個(gè)功能:dumps、dump、loads、load
.json和pickle模塊只建議dumps和loads一次,否則需要根據(jù)之前的順序依次取出來(lái)很麻煩,dumps序列化為字符串。
6. shelve模塊
shelve模塊是一個(gè)簡(jiǎn)單的k,v將內(nèi)存數(shù)據(jù)通過(guò)文件持久化的模塊,可以持久化任何pickle可支持的python數(shù)據(jù)格式,【可理解為可以實(shí)現(xiàn)多次的dumps和、loads】
使用=》
import shelved = shelve.open(’shelve_test’) #打開(kāi)一個(gè)文件
存:d[“key”]=value
取:d,get(“key”)
加密模塊
hashlib模塊
對(duì)中/英文的加密:
import hashlibm=hashlib.md5()m.update(b'Hello')m.update('It’s me 你好'.encode(encoding=’utf-8’))
對(duì)信息的加密:
import hmacm=hmac.new(b’天王蓋地虎’, ’寶塔鎮(zhèn)河妖’.encode(encoding=’utf-8’)
b’天王蓋地虎’:必須是bytes類型
’寶塔鎮(zhèn)河妖’.encode(encoding=’utf-8’:對(duì)含有中文的需要進(jìn)行編碼(encode)成二進(jìn)制。主要是有無(wú)b的區(qū)別。
更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門(mén)與進(jìn)階經(jīng)典教程》
希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。
相關(guān)文章:
1. Ajax常用封裝庫(kù)——Axios的使用2. jsp網(wǎng)頁(yè)實(shí)現(xiàn)貪吃蛇小游戲3. jsp+servlet簡(jiǎn)單實(shí)現(xiàn)上傳文件功能(保存目錄改進(jìn))4. CSS Hack大全-教你如何區(qū)分出IE6-IE10、FireFox、Chrome、Opera5. 不使用XMLHttpRequest對(duì)象實(shí)現(xiàn)Ajax效果的方法小結(jié)6. 在 Ubuntu Linux 上安裝 Oracle Java 14的方法7. 如何在?ASP.NET?Core?Web?API?中處理?Patch?請(qǐng)求8. Android Studio進(jìn)行APP圖標(biāo)更改的兩種方式總結(jié)9. pybind11: C++ 工程提供 Python 接口的實(shí)例代碼10. PHP終止腳本運(yùn)行三種實(shí)現(xiàn)方法詳解
