2019-02-13
阅读量:
747
python namespace packages使用
python的 namespace packages命名空间包如何使用?
答:
在3.3及以后的Python版本中,加入了新的模型:命名空间包。
其特性如下:
1.优先级最低,在已有版本所有的import规则之后;
2.要导入的文件夹中不能有__init__.py文件
3.主要依赖于sys.path中从左到右的搜索顺序
使用方法如下:
举个栗子
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#结果中可以看到dir1/sub和dir2/sub
>>>from sub import mod1mod1
speaking
>>>import sub.mod2mod2
speaking
总结:
顾名思义,命名空间包类似命名空间,python会搜索sys.path中所有相同的路径名,将它们视为同一个命名空间,但是缺点是导入的模块或包有可能存在冲突






评论(0)


暂无数据
推荐帖子
0条评论
0条评论
0条评论