• Ukieweb

    佳的博客

    曾梦想仗剑天涯,后来工作忙没去。

from __future__ import absolute_import 作用是拒绝隐式引用导入

参考:https://docs.python.org/2.5/whatsnew/pep-328.html

它是拒绝使用“ implicit relative import(隐式相对导入)” ,并不拒绝“explicit relative import.(显式相对导入)”可以直接理解为拒绝隐式引用即可。

例如:

from .celery import Celery

是导入当前路径下celery的Celery

from celery import Celery

是导入第三方的全局的celery模块下的Celery

  • from . import math  #大家都这么用

  • from p1 import math #官方推荐方式

详解:

关于这句from __future__ import absolute_import的作用: 

比如说,你的包结构是这样的: 

pkg/ 
pkg/init.py 
pkg/main.py 
pkg/string.py

如果你在main.py中写import string,那么在Python 2.4或之前, Python会先查找当前目录下有没有string.py, 若找到了,则引入该模块,然后你在main.py中可以直接用string了。

如果你是真的想用同目录下的string.py那就好,但是如果你是想用系统自带的标准string.py呢?那其实没有什么好的简洁的方式可以忽略掉同目录的string.py而引入系统自带的标准string.py。

这时候你就需要from __future__ import absolute_import了。这样,你就可以用import string来引入系统的标准string.py, 而用from pkg import string来引入当前目录下的string.py了


0
0
下一篇:python解释器和它的环境路径设置

0 条评论

老佳啊

85后,大专学历,中原人士,家里没矿。

由于年轻时长的比较帅气,导致在别人眼里,我一直不谈恋爱的原因是清高,实则是自己的小自卑。最大的人生目标就是找一个相知相爱相容的人,共度余生。

和人相处时如果能感受到真诚,会非常注重彼此的关系,对别人没有什么心机,即使有利益冲突,一般也会以和为贵,因为在这个世界上,物质的东西,从来不会吸引到我。

特别迷恋那些大山大水,如果现在还能隐居,可能早就去了。对那些宏伟的有底蕴的人文景观比较不感冒。

从事于IT行业,却一直对厨房念念不忘,由于身材魁梧,总觉得自己上辈子是个将军,可惜这辈子没当兵,也不会打架。