2019-02-13
閱讀量:
772
python namespace packages使用
python的 namespace packages命名空間包如何使用?
答:
在3.3及以后的Python版本中,加入了新的模型:命名空間包。
其特性如下:
1.優(yōu)先級(jí)最低,在已有版本所有的import規(guī)則之后;
2.要導(dǎo)入的文件夾中不能有__init__.py文件
3.主要依賴于sys.path中從左到右的搜索順序
使用方法如下:
舉個(gè)栗子
cd ~/codes/
mkdir -p dir1/sub dir2/sub
echo "print 'mod1 speaking' " > dir1/sub/mod1.py #沒有建立__init__.py
echo "print 'mod2 speaking' " > dir2/sub/mod2.py #沒有建立__init__.py
export PYTHONPATH=~/codes/dir1/sub:~/codes/dir2/sub
在python33中:
\>>>import sys
>>>import sub
>>>print sys.path#結(jié)果中可以看到dir1/sub和dir2/sub
>>>from sub import mod1mod1
speaking
>>>import sub.mod2mod2
speaking
總結(jié):
顧名思義,命名空間包類似命名空間,python會(huì)搜索sys.path中所有相同的路徑名,將它們視為同一個(gè)命名空間,但是缺點(diǎn)是導(dǎo)入的模塊或包有可能存在沖突






評(píng)論(0)


暫無數(shù)據(jù)
CDA考試動(dòng)態(tài)
CDA報(bào)考指南
推薦帖子
0條評(píng)論
0條評(píng)論
0條評(píng)論
0條評(píng)論