chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

關(guān)于python包導(dǎo)入的三個冷門知識點(diǎn)

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

掃碼添加小助手

加入工程師交流群

1. 使用 __all__ 控制可被導(dǎo)入的變量

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

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

__all__=['name']

打開 python console 驗(yàn)證一下

>>> 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 * 這種情況適用。

它經(jīng)常在一個包的 __init__.py 中出現(xiàn)。

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

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

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

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

例如,一個項(xiàng)目的部分代碼布局如下

foo-package/
    spam/
        blah.py

bar-package/
    spam/
        grok.py

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

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

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

當(dāng)一個包為命名空間包時,他就不再和常規(guī)包一樣具有 __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 的存在,當(dāng)你導(dǎo)入一個已導(dǎo)入的模塊時,實(shí)際上是沒有效果的。

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

就像下面這樣子

>>> 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 這種導(dǎo)入形式,會發(fā)現(xiàn)重載是同樣是無效的。

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

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

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

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制
    +關(guān)注

    關(guān)注

    5

    文章

    1028

    瀏覽量

    124843
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    615

    瀏覽量

    29290
  • python
    +關(guān)注

    關(guān)注

    56

    文章

    4848

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    10億大單落定!三個標(biāo)均第一,昆侖芯中標(biāo)中移動集采項(xiàng)目

    含稅價超17億元;標(biāo)5和標(biāo)6為CANN生態(tài)設(shè)備,總含稅價約34億元。 前四標(biāo)由中興通訊、新華、浪潮等
    發(fā)表于 08-23 00:30 ?2417次閱讀

    C51單片機(jī)及C語言知識點(diǎn)必備秘籍

    單片機(jī)關(guān)鍵知識點(diǎn)一覽: 系列一 1:單片機(jī)簡敘 2:單片機(jī)引腳介紹 3:單片機(jī)存儲器結(jié)構(gòu) 4:第一單片機(jī)小程序 5:單片機(jī)延時程序分析 6:單片機(jī)并行口結(jié)構(gòu) 7:單片機(jī)的特殊
    發(fā)表于 05-15 14:00

    電機(jī)選型計算公式與知識點(diǎn)匯總

    純分享帖,需要者可點(diǎn)擊附件獲取完整資料~~~*附件:電機(jī)選型計算公式與知識點(diǎn)匯總.pdf 【免責(zé)聲明】內(nèi)容轉(zhuǎn)自今日電機(jī),因轉(zhuǎn)載眾多,無法確認(rèn)真正原始作者,故僅標(biāo)明轉(zhuǎn)載來源。版權(quán)歸原出處所有,純分享帖,侵權(quán)請聯(lián)系刪除內(nèi)容以保證您的權(quán)益。
    發(fā)表于 04-29 16:10

    電氣工程師必知必會的100電?知識點(diǎn)分享

    電??程師也都是從電?學(xué)徒??步?步積累成長起來的。積跬步?千?,匯細(xì)流成江海!朋友們,現(xiàn)在讓我們??捷徑,花半個?時的時間來積累100必知必會的電?知識點(diǎn)吧!
    的頭像 發(fā)表于 03-14 11:05 ?1322次閱讀

    使用Python3.7導(dǎo)入cv2時遇到錯誤怎么解決?

    使用 Python* 版本 3.7。 Ran Classification Python* 演示。 在導(dǎo)入 cv2 時遇到錯誤: ImportError: DLL load failed: The specified modu
    發(fā)表于 03-05 09:37

    在深度學(xué)習(xí)工作臺中安裝Python軟件報錯怎么解決?

    在 DL 工作臺中導(dǎo)入的模型。 在準(zhǔn)備將導(dǎo)入的模型轉(zhuǎn)換為中間表示 (IR) 時收到錯誤: Cannot install packages for python /home/workbench/.workbench/enviro
    發(fā)表于 03-05 07:32

    Linux系統(tǒng)中最重要的三個命令

    Linux劍客是Linux系統(tǒng)中最重要的三個命令,它們以其強(qiáng)大的功能和廣泛的應(yīng)用場景而聞名。這三個工具的組合使用幾乎可以完美應(yīng)對Shell中的數(shù)據(jù)分析場景,因此被統(tǒng)稱為Linux
    的頭像 發(fā)表于 03-03 10:37 ?665次閱讀

    華邦電子安全閃存關(guān)鍵知識點(diǎn)

    黑客攻擊?高溫考驗(yàn)?駕駛安全?通通沒在怕的!1月15日,華邦電子舉辦了“安全閃存強(qiáng)化車用電子安全性”為主題的線上研討會。為了讓沒能參加這場線上研討會的邦友們也可以清晰 Get 安全閃存關(guān)鍵知識點(diǎn),邦
    的頭像 發(fā)表于 02-12 18:15 ?979次閱讀

    如何將python文件導(dǎo)入到ROS系統(tǒng)中

    本文通過使用myCobot機(jī)械臂進(jìn)行QR碼視覺追蹤的實(shí)踐案例分析,介紹如何將 python 文件導(dǎo)入到 ROS 系統(tǒng)中。
    的頭像 發(fā)表于 02-11 11:08 ?1060次閱讀
    如何將<b class='flag-5'>python</b>文件<b class='flag-5'>導(dǎo)入</b>到ROS系統(tǒng)中

    Docker-鏡像的分層-busybox鏡像制作

    容器修改了基礎(chǔ)鏡像的內(nèi)容,比如 /etc 下的文件,這時其他容器的 /etc 是否也會被修改? 可寫層的概念: Cpoy-on-Write 知識點(diǎn)6:制作一busybox鏡像 1、編寫Dockerfile ENTRYPOIN
    的頭像 發(fā)表于 01-15 10:44 ?865次閱讀
    Docker-鏡像的分層-busybox鏡像制作

    Aigtek功率放大器應(yīng)用:電感線圈的知識點(diǎn)分享

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

    后悔沒有早點(diǎn)看到:天線設(shè)計中的知識點(diǎn)

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

    DNS用戶訪問網(wǎng)站原理

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

    硬件工程師面試基礎(chǔ)知識點(diǎn)

    皮爾斯振蕩器(Pierce oscillator) 上圖中,U1為增益很大的反相放大器,CL1、CL2為匹配電容,是電容三點(diǎn)式電路的分壓電容,接地點(diǎn)就是分壓點(diǎn)。以接地點(diǎn)即分壓點(diǎn)為參考點(diǎn),輸入和輸出是反相的,但從并聯(lián)諧振回路即石英
    的頭像 發(fā)表于 11-21 11:04 ?1094次閱讀
    硬件工程師面試基礎(chǔ)<b class='flag-5'>知識點(diǎn)</b>

    接口測試?yán)碚摗⒁蓡柺珍浥c擴(kuò)展相關(guān)知識點(diǎn)

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