22.2.15

python __future__ package的几个特性 - harrychinese - 博客园

python __future__ package的几个特性 - harrychinese - 博客园

==============================
__future__的absolute_import
==============================
from __future__ import absolute_import, 字面理解好像是仅仅允许绝对引用, 其实不然, 真实意思是禁用 implicit relative import, 但并不会禁掉 explicit relative import. 

举个例子, 目录结构如下, 
 -cake      
 |- __init__.py      
 |- icing.py      
 |- sponge.py   
 -drink      
 |- __init__.py      
 |- water.py      
 
 在 sponge.py 引用 icing , 有多种方法: 
1. import icing # implicit relative import, py2已强烈不推荐使用, py3已经不可用了 
2. from . import icing # explicit relative import, python.org 官方虽不推荐, 但这却是事实标准 
3. from cake import icing # absolute import, python 官方推荐. 

No comments: