最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

快速了解Python相對導(dǎo)入

 更新時間:2018年01月12日 11:23:30   作者:mingz2013  
這篇文章主要介紹了快速了解Python相對導(dǎo)入,具有一定借鑒價值,需要的朋友可以參考下

1、絕對導(dǎo)入和相對導(dǎo)入

絕對導(dǎo)入:按照sys.path順序搜索,先主目錄(sys.path中第一項''),然后PYTHONPATH環(huán)境變量、標(biāo)準(zhǔn)庫路徑、pth指定路徑等。

相對導(dǎo)入:在模塊所在同一個包內(nèi)搜索,注意該包目錄與主目錄的區(qū)別。

例1:有以下目錄

app/
    __init__.py
    mod.py
    string.py

mod.py內(nèi)容:import string

當(dāng)在app/目錄下執(zhí)行Python mod.py時為絕對導(dǎo)入,當(dāng)在app上層目錄執(zhí)行python -m app.mod時為相對導(dǎo)入。

2、在python 2.7及之前版本中默認(rèn)是先“相對”后“絕對”的順序搜索模塊,也就是說先在模塊所在同一個包內(nèi)搜索然后在sys.path中搜索。

在上例中,在app上層目錄執(zhí)行python -m app.mod時,將導(dǎo)入app/string.py(可以在string.py中print或者在mod.py中加入print string.__file__來測試)。

使用以下語句將會只搜索絕對路徑:

from __future__ import absolute_import

在mod.py開頭加上該語句,在app上層目錄執(zhí)行python -m app.mod時,將導(dǎo)入標(biāo)準(zhǔn)庫中的string模塊。

在python3.3中默認(rèn)只搜索絕對路徑,要使用相對導(dǎo)入,執(zhí)行以下語句:

from . import string

注意:開頭點號只能用在from語句中,不能用在import語句中。

3、相對導(dǎo)入使用模塊的__name__屬性來決定模塊在包結(jié)構(gòu)中的位置。當(dāng)__name__屬性不包含包信息(i.e. 沒有用'.'表示的層次結(jié)構(gòu),比如'__main__'),則相對導(dǎo)入將模塊解析為頂層模塊,而不管模塊在文件系統(tǒng)中的實際位置。

例2:

app/
    __init__.py
    sub1/
         __init__.py
         mod1.py
     sub2/
         __init__.py
         mod2.py

嘗試在mod1.py導(dǎo)入mod2.py,加入from ..sub2 import mod2。

直接在sub1目錄下執(zhí)行python mod1.py或在app目錄下執(zhí)行python sub1/mod1.py將報錯:"Attempted relative import in non-package"。

在app目錄下執(zhí)行python -m sub1.mod1也將報錯:"Attempted relative import beyond toplevel package"。

正確的做法是:在app上層目錄執(zhí)行python -m app.sub1.mod1,或者不要使用from ..sub2 import mod2而改用其他方式(比如將sub2添加到sys.path)。

例3:

__init__.py
start.py
parent.py
sub/
    __init__.py
    relative.py

start.py中包含import sub.relative,relative.py中包含from .. import parent。

執(zhí)行python start.py將報錯:"Attempted relative import beyond toplevel package"。

解決辦法:新建pkg目錄,將parent.py、sub目錄移到pkg目錄中,start.py改為import pkg.sub.relative,其它不變。

總結(jié)

以上就是本文關(guān)于快速了解Python相對導(dǎo)入的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • Python快速實現(xiàn)一鍵摳圖功能的全過程

    Python快速實現(xiàn)一鍵摳圖功能的全過程

    你有沒想過,Python也能成為這樣的一種工具:在只有一張圖片,需要細(xì)致地?fù)赋鋈宋锏那闆r下,能幫你減少摳圖步驟,這篇文章主要給大家介紹了關(guān)于Python快速實現(xiàn)一鍵摳圖功能的相關(guān)資料,需要的朋友可以參考下
    2021-06-06
  • Python中文分詞實現(xiàn)方法(安裝pymmseg)

    Python中文分詞實現(xiàn)方法(安裝pymmseg)

    這篇文章主要介紹了Python中文分詞實現(xiàn)方法,通過安裝pymmseg來實現(xiàn)分詞功能,涉及pymmseg的下載、解壓、安裝及使用技巧,需要的朋友可以參考下
    2016-06-06
  • Django框架教程之正則表達(dá)式URL誤區(qū)詳解

    Django框架教程之正則表達(dá)式URL誤區(qū)詳解

    正則表達(dá)式對大家來說應(yīng)該都不陌生,下面這篇文章主要給大家介紹了關(guān)于Django框架教程之正則表達(dá)式URL誤區(qū)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • python實現(xiàn)代理服務(wù)功能實例

    python實現(xiàn)代理服務(wù)功能實例

    本文分析了代理服務(wù)的原理,并使用PYTHON實現(xiàn)了一個簡單的代理服務(wù)功能供大家參考使用
    2013-11-11
  • python 微信好友特征數(shù)據(jù)分析及可視化

    python 微信好友特征數(shù)據(jù)分析及可視化

    這篇文章主要介紹了python 微信好友特征數(shù)據(jù)分析及可視化,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-01-01
  • 使用Python程序計算鋼琴88個鍵的音高

    使用Python程序計算鋼琴88個鍵的音高

    這篇文章介紹了使用Python程序計算鋼琴88個鍵的音高,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • 解決pyqt中ui編譯成窗體.py中文亂碼的問題

    解決pyqt中ui編譯成窗體.py中文亂碼的問題

    下面小編就為大家?guī)硪黄鉀Qpyqt中ui編譯成窗體.py中文亂碼的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-12-12
  • Python3中多線程編程的隊列運(yùn)作示例

    Python3中多線程編程的隊列運(yùn)作示例

    這篇文章主要介紹了Python3中多線程編程的隊列運(yùn)作示例,文中用一個簡單的例子展示了Python下嘗試多線程時隊列的進(jìn)站出站是如何運(yùn)作的,需要的朋友可以參考下
    2015-04-04
  • Manjaro、pip、conda更換國內(nèi)源的方法

    Manjaro、pip、conda更換國內(nèi)源的方法

    這篇文章主要介紹了Manjaro、pip、conda更換國內(nèi)源的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • python分別打包出32位和64位應(yīng)用程序

    python分別打包出32位和64位應(yīng)用程序

    本文給大家分享的是如何使用python打包出32位和64位的應(yīng)用程序的方法,非常的簡單實用,有需要的小伙伴可以參考下
    2020-02-02

最新評論

高雄市| 榆中县| 扶余县| 孟连| 大足县| 云浮市| 义乌市| 临泽县| 梁平县| 苍溪县| 湾仔区| 新泰市| 柳江县| 施甸县| 西安市| 大名县| 精河县| 乌拉特中旗| 霍城县| 黄大仙区| 东宁县| 正定县| 板桥市| 米林县| 正阳县| 望都县| 雷山县| 营口市| 永昌县| 岳普湖县| 治多县| 焦作市| 临清市| 沁阳市| 罗平县| 新宁县| 娄烦县| 紫云| 洛扎县| 凭祥市| 永平县|