91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

一文理解python模塊的緩存

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-14 16:42 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

在一個模塊內部重復引用另一個相同模塊,實際并不會導入兩次,原因是在使用關鍵字 import 導入模塊時,它會先檢索 sys.modules 里是否已經載入這個模塊了,如果已經載入,則不會再次導入,如果不存在,才會去檢索導入這個模塊。

來實驗一下,在 my_mod02 這個模塊里,我 import 兩次 my_mod01 這個模塊,按邏輯每一次 import 會一次 my_mod01 里的代碼(即打印 in mod01),但是驗證結果是,只打印了一次。

$ cat my_mod01.py
print('in mod01')

$ cat my_mod02.py
import my_mod01
import my_mod01

$ python my_mod02.py
in mod01

該現象的解釋是:因為有 sys.modules 的存在。

sys.modules 是一個字典(key:模塊名,value:模塊對象),它存放著在當前 namespace 所有已經導入的模塊對象。

# test_module.py

import sys
print(sys.modules.get('json', 'NotFound'))

import json
print(sys.modules.get('json', 'NotFound'))

運行結果如下,可見在 導入后 json 模塊后,sys.modules 才有了 json 模塊的對象。

$ python test_module.py
NotFound

由于有緩存的存在,使得我們無法重新載入一個模塊。

但若你想反其道行之,可以借助 importlib 這個神奇的庫來實現。事實也確實有此場景,比如在代碼調試中,在發(fā)現代碼有異常并修改后,我們通常要重啟服務再次載入程序。這時候,若有了模塊重載,就無比方便了,修改完代碼后也無需服務的重啟,就能繼續(xù)調試。

還是以上面的例子來理解,my_mod02.py 改寫成如下

# my_mod02.py

import importlib
import my_mod01
importlib.reload(my_mod01)

與上面不同的是,這邊執(zhí)行了兩次 my_mod01.py

$ python3 my_mod02.py
in mod01
in mod01

審核編輯:湯梓紅
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • 模塊
    +關注

    關注

    7

    文章

    2838

    瀏覽量

    53314
  • 緩存
    +關注

    關注

    1

    文章

    248

    瀏覽量

    27767
  • python
    +關注

    關注

    57

    文章

    4877

    瀏覽量

    90089
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    KeepAlive:組件緩存實現深度解析

    。理解它的實現原理,將幫助我們更好地處理需要保持狀態(tài)的組件。 前言:為什么需要組件緩存? 在構建大型單頁應用時,我們經常會遇到這樣的場景: 用戶頻繁切換標簽頁,每次切換回來表單數據卻丟失了。 個復雜
    發(fā)表于 03-05 19:17

    IoT智能模塊高速緩存核心IS61WV204816ALL-12B

    ISSI 32Mbit SRAM IS61WV204816ALL-12B為IoT智能模塊提供高速數據緩存,憑借12ns訪問速度、1.6V超低功耗及工業(yè)級溫度范圍,確保設備在實時數據處理中的高效可靠運行,顯著提升響應速度與續(xù)航能力。
    的頭像 發(fā)表于 02-02 09:57 ?281次閱讀
    IoT智能<b class='flag-5'>模塊</b>高速<b class='flag-5'>緩存</b>核心IS61WV204816ALL-12B

    RDMA設計21:連接管理模塊設計

    本博主要交流設計思路,在本博客已給出相關博約100篇,希望對初學者有用。注意這里只是拋磚引玉,切莫認為參考這就可以完成商用IP設計。 連接管理模塊個連接信息
    發(fā)表于 01-12 11:03

    RDMA設計14:連接管理模塊設計

    本博主要交流設計思路,在本博客已給出相關博130多篇,希望對初學者有用。注意這里只是拋磚引玉,切莫認為參考這就可以完成商用IP設計。連接管理模塊個連接信息
    發(fā)表于 12-30 16:51

    維視智造攜手寶雞文理學院 共建AI產學研新生態(tài) ——人工智能融創(chuàng)現代產學研學院揭牌儀式圓滿舉行

    2025年12月23日,寶雞文理學院人工智能融創(chuàng)現代產學研學院揭牌儀式在寶雞文理學院圖書館801報告廳隆重舉行。維視智造作為受邀企業(yè)代表,與寶雞市工信局、科大訊飛、新大陸科技等政府及企業(yè)代表共同見證了這重要時刻。
    的頭像 發(fā)表于 12-25 15:25 ?218次閱讀
    維視智造攜手寶雞<b class='flag-5'>文理</b>學院 共建AI產學研新生態(tài) ——人工智能融創(chuàng)現代產學研學院揭牌儀式圓滿舉行

    沒有專利的opencv-python 版本

    GUI 依賴,且默認禁用 nonfree 專利模塊),版本需與核心版致: # 先安裝核心版,再安裝配套 contrib 無頭版(避免專利風險) pip install opencv-python
    發(fā)表于 12-13 12:37

    電能表會 “爆表” 嗎?機械 / 家用 / 快充樁場景的計量真相拆解

    文理清:為何家用電表難 “爆表”,快充樁卻會?
    的頭像 發(fā)表于 11-12 09:25 ?2563次閱讀
    電能表會 “爆表” 嗎?機械 / 家用 / 快充樁場景的計量真相拆解

    文理解模數轉換器中的有效位數

    隨著測量精度要求提升,有效位數(ENOB)已成為評估ADC、數字示波器真實性能的核心指標。ENOB由IEEE定義,綜合了噪聲、抖動、非線性失真等誤差,反映設備在實際使用中的“有效分辨率”。
    的頭像 發(fā)表于 10-09 11:01 ?3139次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文理解</b>模數轉換器中的有效位數

    詳解xilinx 7系列FPGA配置技巧

    本文旨在通過講解不同模式的原理圖連接方式,進而配置用到引腳的含義(手冊上相關引腳含義有四、五頁,通過本文理解基本上能夠記住所有引腳含義以及使用場景),熟悉xilinx 7系列配置流程,以及設計原理圖時需要注意的些事項,比如flash與FPGA的上電時序。
    的頭像 發(fā)表于 08-30 14:35 ?1.1w次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b>詳解xilinx 7系列FPGA配置技巧

    緩存之美:萬詳解 Caffeine 實現原理(上)

    文章將采用“總-分-總”的結構對配置固定大小元素驅逐策略的 Caffeine 緩存進行介紹,首先會講解它的實現原理,在大家對它有個概念之后再深入具體源碼的細節(jié)之中,理解它的設計理念,從中能學習到
    的頭像 發(fā)表于 08-05 14:49 ?707次閱讀
    <b class='flag-5'>緩存</b>之美:萬<b class='flag-5'>文</b>詳解 Caffeine 實現原理(上)

    高性能緩存設計:如何解決緩存偽共享問題

    在多核高并發(fā)場景下, 緩存偽共享(False Sharing) 是導致性能驟降的“隱形殺手”。當不同線程頻繁修改同緩存行(Cache Line)中的獨立變量時,CPU緩存
    的頭像 發(fā)表于 07-01 15:01 ?770次閱讀
    高性能<b class='flag-5'>緩存</b>設計:如何解決<b class='flag-5'>緩存</b>偽共享問題

    由 Mybatis 源碼暢談軟件設計(八):從根上理解 Mybatis 二級緩存

    1. 驗證二級緩存 在上篇帖子中的 User 和 Department 實體類依然要用,這里就不再贅述了,要啟用二級緩存,需要在 Mapper.xml 文件中指定 cache 標簽,如下
    的頭像 發(fā)表于 06-23 11:35 ?486次閱讀
    由 Mybatis 源碼暢談軟件設計(八):從根上<b class='flag-5'>理解</b> Mybatis 二級<b class='flag-5'>緩存</b>

    MCU緩存設計

    MCU 設計通過優(yōu)化指令與數據的訪問效率,顯著提升系統(tǒng)性能并降低功耗,其核心架構與實現策略如下: 、緩存類型與結構 指令緩存(I-Cache)與數據緩存(D-Cache)? I-Ca
    的頭像 發(fā)表于 05-07 15:29 ?1134次閱讀

    Nginx緩存配置詳解

    Nginx 是個功能強大的 Web 服務器和反向代理服務器,它可以用于實現靜態(tài)內容的緩存,緩存可以分為客戶端緩存和服務端緩存
    的頭像 發(fā)表于 05-07 14:03 ?1266次閱讀
    Nginx<b class='flag-5'>緩存</b>配置詳解

    nginx中強緩存和協(xié)商緩存介紹

    緩存直接告訴瀏覽器:在緩存過期前,無需與服務器通信,直接使用本地緩存。
    的頭像 發(fā)表于 04-01 16:01 ?1001次閱讀