在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

3天內不再提示

關于python包導入的三個冷門知識點

python爬蟲知識分享 ? 來源:python爬蟲知識分享 ? 作者:python爬蟲知識分享 ? 2022-03-14 16:33 ? 次閱讀

1. 使用 __all__ 控制可被導入的變量

使用 from module import * 默認情況下會導入 module 里的所有變量,若你只想從模塊中導入其中幾個變量,可以在 module 中使用 __all__ 來控制想要被其他模塊導入的變量。

# profile.py
name='小明'
age=18

__all__=['name']

打開 python console 驗證一下

>>> from profile import *
>>> print(name)
小明
>>> print(age)
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'age' is not defined

__all__ 僅對于使用from module import * 這種情況適用。

它經常在一個包的 __init__.py 中出現。

2. 命名空間包的神奇之處

命名空間包,一個陌生的名字。

與我們熟悉的常規包不同的是,它沒有 __init__.py 文件。

更為特殊的是,它可以跨空間地將兩個不相鄰的子包,合并成一個虛擬機的包,我們將其稱之為 命名空間包

例如,一個項目的部分代碼布局如下

foo-package/
    spam/
        blah.py

bar-package/
    spam/
        grok.py

在這2個目錄里,都有著共同的命名空間spam。在任何一個目錄里都沒有__init__.py文件。

讓我們看看,如果將foo-package和bar-package都加到python模塊路徑并嘗試導入會發生什么?

>>> import sys
>>> sys.path.extend(['foo-package', 'bar-package'])
>>> import spam.blah
>>> import spam.grok

當一個包為命名空間包時,他就不再和常規包一樣具有 __file_ 屬性,取而代之的是 __path__

>>> import sys
>>> sys.path.extend(['foo-package', 'bar-package'])
>>> import spam.blah
>>> import spam.grok
>>> spam.__path__
_NamespacePath(['foo-package/spam', 'bar-package/spam'])
>>> spam.__file__
Traceback (most recent call last):
    File "", line 1, in 
AttributeError: 'module' object has no attribute '__file__'

3. 模塊重載中的一個坑

由于有 sys.modules 的存在,當你導入一個已導入的模塊時,實際上是沒有效果的。

為了達到模塊的重載,有的人會將已導入的包從 sys.modules 中移除后再導入

就像下面這樣子

>>> import foo.bar
successful to be imported
>>>
>>> import foo.bar
>>>
>>> import sys
>>> sys.modules['foo.bar']

>>> del sys.modules['foo.bar']
>>>
>>> import foo.bar
successful to be imported

上面的例子里我使用的是import foo.bar ,如果你使用的是 from foo import bar 這種導入形式,會發現重載是同樣是無效的。

這應該算是一個小坑,不知道的人,會掉入坑中爬不出來。

>>> import foo.bar
successful to be imported
>>>
>>> import foo.bar
>>>
>>> import sys
>>> del sys.modules['foo.bar']
>>> from foo import bar

因此,在生產環境中可能需要避免重新加載模塊。而在調試模式中,它會提供一定的便利,但你要知道這個重載的弊端,以免掉入坑里。
審核編輯:湯梓紅

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

    關注

    4

    文章

    1013

    瀏覽量

    122692
  • 變量
    +關注

    關注

    0

    文章

    613

    瀏覽量

    28409
  • python
    +關注

    關注

    56

    文章

    4799

    瀏覽量

    84817
收藏 人收藏

    評論

    相關推薦

    Aigtek功率放大器應用:電感線圈的知識點分享

    電磁驅動是功率放大器的一大基礎應用領域,其中我們最常見的就是用功放來驅動電感線圈,那么關于電感線圈的這10大知識點你都知道嗎?今天Aigtek安泰電子來給大家介紹一下電感線圈的基礎知識
    的頭像 發表于 01-07 15:43 ?79次閱讀
    Aigtek功率放大器應用:電感線圈的<b class='flag-5'>知識點</b>分享

    后悔沒有早點看到:天線設計中的知識點

    Cat.1 bis R13架構,天線架構精簡為單天線架構,去掉了分集接收天線,因此只需要一根天線。 ? 知識點: Cat.1 bis相對于Cat.1的區別是,后者為兩根天線(一根主天線,一根分集天線
    的頭像 發表于 12-24 17:11 ?354次閱讀
    后悔沒有早點看到:天線設計中的<b class='flag-5'>知識點</b>!

    DNS用戶訪問網站原理

    瀏覽器輸入網址后發生了什么 這是一經典的問題,通過回答的細致程度,可以判斷出,小白、新手、中級玩家、高端玩家。 關于這個問題,小到三兩句話,大到你用三個月都說不完的知識點
    的頭像 發表于 12-17 15:28 ?127次閱讀
    DNS用戶訪問網站原理

    接口測試理論、疑問收錄與擴展相關知識點

    本文章使用王者榮耀游戲接口、企業微信接口的展示結合理論知識,講解什么是接口測試、接口測試理論、疑問收錄與擴展相關知識點知識學院,快來一起看看吧~
    的頭像 發表于 11-15 09:12 ?337次閱讀
    接口測試理論、疑問收錄與擴展相關<b class='flag-5'>知識點</b>

    基本理想電路元件的三個特征是什么

    基本理想電路元件是構成電路的基本單元,它們具有三個基本特征:電壓-電流關系、能量轉換和電路參數。以下是對這三個特征的分析: 電壓-電流關系 理想電路元件的電壓-電流關系是其最基本的特征之一。這種關系
    的頭像 發表于 08-25 09:38 ?1249次閱讀

    怎么判斷電容三點式和電感三點

    在電子電路中,電容三點式和電感三點式振蕩電路是兩種常見的振蕩電路類型,它們的主要區別在于反饋元件(電容或電感)與晶體管三個極(基極、發射極、集電極)的連接方式。 一、基本概念 1. 電容三點
    的頭像 發表于 08-21 15:57 ?2154次閱讀

    可調變阻器三個引腳怎么區分

    可調變阻器,也稱為電位器或可變電阻器,是一種可以調節電阻值的電子元件。它廣泛應用于各種電子設備中,如音頻設備、電源管理、電機控制等。可調變阻器有三個引腳,分別是固定端、滑動端和可調端。這三個引腳
    的頭像 發表于 07-24 11:12 ?1357次閱讀

    時間繼電器應用的三個關鍵是什么?

    時間繼電器應用的三個關鍵:選型、安裝和調試。 一、時間繼電器的選型 確定時間繼電器的類型 時間繼電器按照工作原理可以分為電磁式、電子式和干簧式等幾種類型。電磁式時間繼電器具有結構簡單、價格低廉、可靠性高等特點,
    的頭像 發表于 06-21 10:00 ?850次閱讀

    微波測量的三個基本參量是什么

    微波測量是電子工程領域中的一重要分支,它涉及到對微波信號的頻率、幅度、相位等參數的測量。在微波測量中,有三個基本參量:頻率、幅度和相位。這三個參量是微波信號的基本特征,對于微波系統的設計、調試
    的頭像 發表于 05-28 14:46 ?1439次閱讀

    如何判斷極管的三個極性

    極管是電子電路中的基本元件之一,其性能的好壞直接影響到整個電路的性能。而判斷極管的三個極性(基極b、發射極e、集電極c)是電路分析和設計中不可或缺的一步。下面將詳細介紹判斷極管
    的頭像 發表于 05-21 15:26 ?6834次閱讀

    籬笆三個樁——記晶體極管的發明

    籬笆三個樁——記晶體極管的發明
    的頭像 發表于 05-12 08:14 ?788次閱讀
    一<b class='flag-5'>個</b>籬笆<b class='flag-5'>三個</b>樁——記晶體<b class='flag-5'>三</b>極管的發明

    模擬電子技術知識點問題總結概覽

    給大家分享模擬電子技術知識點問題總結。
    的頭像 發表于 05-08 15:16 ?1188次閱讀
    模擬電子技術<b class='flag-5'>知識點</b>問題總結概覽

    一篇搞定DCS系統相關知識點

    目標。DCS系統廣泛應用于各個行業,如化工、電力、制藥等。在這些行業中,DCS系統可以實現對生產過程的集中監控和分散控制,提高生產效率和產品質量,降低能耗和減少環境污染,從而保證產品質量,并確保生產過程的安全可靠。 二.DCS系統知識點
    的頭像 發表于 03-26 18:40 ?938次閱讀
    一篇搞定DCS系統相關<b class='flag-5'>知識點</b>

    【量子計算機重構未來 | 閱讀體驗】第二章關鍵知識點

    本帖最后由 oxlm_1 于 2024-3-6 23:20 編輯 之所以將第二章單獨拿出來,是因為在閱讀過程中,發現第二章知識點較多,理解起來比較耗時間。 第二章的主要知識點: 量子
    發表于 03-06 23:17

    三個電位怎么判斷NPN還是PNP

    的極性。 一、晶體管基礎知識 晶體管是由半導體材料構成的,其內部包含三個區域,即基區、發射區和集電區。其中,基區是控制晶體管的區域,發射區與基區相連,而集電區與基區相接。根據這三個區域內外的摻雜類型和極性,晶體管可
    的頭像 發表于 02-27 15:02 ?3305次閱讀
    主站蜘蛛池模板: 狠狠干天天| 濑亚美莉vs黑人欧美视频| 黄 色 大 片 网站| 很色视频| xx毛片| 午夜传媒| 国产亚洲小视频| 另类五月| 美女被强插| 婷婷综合激六月情网| 国产成人精品日本| 国产高清一区二区三区| 97人人在线视频| 喷潮白浆| 成 人 免费 黄 色 视频| 中文字幕一区二区三区四区五区| 日本aaaaa级毛片片| 一级片 在线播放| 日本高清中文字幕在线观穿线视频 | 国产一级久久免费特黄| аⅴ天堂 在线| 全免费一级毛片在线播放| 国产日本三级在线播放线观看| 岛国片欧美一级毛片| 天天干天天碰| 在线观看视频在线观看| xxxxxxxxxxx性bbbb| 色久优优 欧美色久优优| 黄色在线视频免费看| 天天做天天爱天天操| 999久久久国产精品| 精品国产免费久久久久久婷婷| 特级一级片| 久久精品夜色国产| 午夜影院在线观看| 宅男666在线永久免费观看| 国产精品高清久久久久久久| 色97色| www.97色| 91牛牛| 亚洲国产欧美精品一区二区三区|