热线电话:13121318867

登录
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.0000
3
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子