一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - 詳解Python中的from..import絕對導入語句

詳解Python中的from..import絕對導入語句

2020-08-29 10:30樂天 Python

絕對導入其實非常簡單,即是用from語句在import前指明頂層package名,下面我們通過兩個例子來詳解Python中的from..import絕對導入語句

相對或者絕對import
更多的復雜部分已經從python2.5以來實現:導入一個模塊可以指定使用絕對或者包相對的導入。這個計劃將移動到使絕對的導入成為默認的細節在其他版本的python中。
我們假設你有一個包目錄,像下面這樣:

?
1
2
3
4
pkg/
pkg/__init__.py
pkg/main.py
pkg/string.py

上面定義了一個包稱為 pkg 包含 pkg.main 和pkg.string 兩個子模塊。考慮在‘main.py'中的代碼,什么事情會發生如果我們執行語句 import string 在python2.4或者更早的版本?他將會查詢包的目錄執行一個相對的import,找到pkg/string.py ,導入文件的內容作為pkg.string模塊,這個模塊的邊界的名字是'string'在pkg.main模塊中的名稱空間。
如果pkg.string是你想要的這個非常不錯。但是如果你僅僅想要的是python的基本的string模塊?
沒有清楚的方法忽略pkg.string以及尋找基本的模塊;一般情況下你不得不去查看sys.modules中的內容,那有一點稍微的不清楚。Holger Krekel的py.std包提供了一個整齊的方法執行從基本庫中導入的方法,improt py;py.std.string.jion(),但是那個包在python的安裝過程是是不可用的。

閱讀代碼在相對導入方面也是不夠清晰的,因為讀者可能混淆string和pkg.string模塊使用。Python用戶可以馬上知道那是不同的名稱在基本庫和自己的包模塊之間,但是你不能保護你自己的子模塊名字在一個新版本的python中。

從python2.5,你可以打開 import的行為直接去絕對導入使用一個 from __future__ import absolute_import 。這個絕對導入行為將成為一個默認的細節在將來的python中。一旦絕對導入被默認,import string 將總是尋找基本庫。建議用戶盡可能多的使用絕對導入,因此在你的代碼中使用from pkg improt string是適宜的。在python2.*版本中需要:

?
1
from __future__ import absolute_import

示例1:
例如:在模塊A.B.C中的代碼:

?
1
2
3
from . import D     # 導入A.B.D
from .. import E    # 導入A.E
from ..F import G    # 導入A.F.G,.. 和 F是連著的,中間沒有空格

.代表當前目錄,..代表上一層目錄,...代表上上層目錄。

示例2:

目錄結構:

?
1
2
3
4
5
6
7
8
9
10
package/
 __init__.py
 subpackage1/
  __init__.py
  moduleX.py
  moduleY.py
 subpackage2/
  __init__.py
  moduleZ.py
 moduleA.py

在subpackage1/moduleX.py 或者 subpackage1/__init__.py中可以這樣導入module:

?
1
2
3
4
5
6
7
8
from .moduleY import spam
from .moduleY import spam as ham
from . import moduleY
from ..subpackage1 import moduleY
from ..subpackage2.moduleZ import eggs
from ..moduleA import foo
from ...package import bar
from ...sys import path

注意,from ...sys import path是合法的,但是不建議。直接from sys import path就行了。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99精品热线在线观看免费视频 | 91天堂素人| 美女舒服好紧太爽了视频 | 国产男人搡女人免费视频 | 青青青青在线视频 | 99av导航 | 97色综合 | 嫩草影院久久99 | 国产色综合久久五月色婷婷中文 | 国产午夜亚洲精品一区网站 | 岛国a香蕉片不卡在线观看 荡女淫春2古装 | 午夜想想爱 | 欧美人体高清在线观看ggogo | 久久精品WWW人人爽人人 | 无限在线看免费视频大全 | 国产精品俺来也在线观看了 | 456亚洲人成高清在线 | 欧美a级在线 | 白丝尤物的下面被疯狂蹂躏 | 亚洲乱亚洲乱妇41p 亚洲乱码一区二区三区国产精品 | 国产一卡| 91交换论坛 | 免费的强动漫人物 | 好男人资源免费播放 | 亚洲激情视频在线 | 91啦在线播放 | 日本欧美不卡一区二区三区在线 | 亚洲波多野结衣日韩在线 | 四虎影院永久网址 | 亚洲高清中文字幕一区二区三区 | 国产欧美日韩精品在线 | 幻女free性俄罗斯第一次摘花 | 欧美在线视频 一区二区 | www.色小妹 | 大ji吧快给我别停受不了视频 | 国产午夜免费不卡精品理论片 | 色婷亚洲 | 白丝超短裙被输出娇喘不停小说 | 亚洲、国产综合视频 | 缴情五月天| 国产成人咱精品视频免费网站 |