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

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

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

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

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

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

掃碼添加小助手

加入工程師交流群

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

使用 from module import * 默認(rèn)情況下會(huì)導(dǎo)入 module 里的所有變量,若你只想從模塊中導(dǎo)入其中幾個(gè)變量,可以在 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__ 僅對(duì)于使用from module import * 這種情況適用。

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

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

命名空間包,一個(gè)陌生的名字。

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

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

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

foo-package/
    spam/
        blah.py

bar-package/
    spam/
        grok.py

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

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

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

當(dāng)一個(gè)包為命名空間包時(shí),他就不再和常規(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. 模塊重載中的一個(gè)坑

由于有 sys.modules 的存在,當(dāng)你導(dǎo)入一個(gè)已導(dǎo)入的模塊時(shí),實(shí)際上是沒有效果的。

為了達(dá)到模塊的重載,有的人會(huì)將已導(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)入形式,會(huì)發(fā)現(xiàn)重載是同樣是無效的。

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

>>> 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)試模式中,它會(huì)提供一定的便利,但你要知道這個(gè)重載的弊端,以免掉入坑里。
審核編輯:湯梓紅

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

    關(guān)注

    5

    文章

    1031

    瀏覽量

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

    關(guān)注

    0

    文章

    615

    瀏覽量

    29371
  • python
    +關(guān)注

    關(guān)注

    57

    文章

    4858

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    Pico Technology發(fā)布Python軟件pyPicoSDK

    近日,全球領(lǐng)先的基于 PC 的儀器供應(yīng)商Pico Technology 官方發(fā)布了 pyPicoSDK,這是一款旨在簡化 PicoScopes 應(yīng)用的 Python 軟件。pyPicoSDK 在
    的頭像 發(fā)表于 09-29 15:03 ?653次閱讀

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

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

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

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

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

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

    電氣工程師必知必會(huì)的100個(gè)電?知識(shí)點(diǎn)分享

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

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

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

    在深度學(xué)習(xí)工作臺(tái)中安裝Python軟件報(bào)錯(cuò)怎么解決?

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

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

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

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

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

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

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

    使用Python實(shí)現(xiàn)xgboost教程

    使用Python實(shí)現(xiàn)XGBoost模型通常涉及以下幾個(gè)步驟:數(shù)據(jù)準(zhǔn)備、模型訓(xùn)練、模型評(píng)估和模型預(yù)測(cè)。以下是一個(gè)詳細(xì)的教程,指導(dǎo)你如何在Python中使用XGBoost。 1. 安裝XGBoost
    的頭像 發(fā)表于 01-19 11:21 ?2230次閱讀

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

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

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

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

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

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

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

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