from __future__ import unicode_literals, absolute_import
2017-11-24 18:53
435 查看
Q:python模块中的相对导入,绝对导入,有些地方会写
from __future__ import absolute_import
希望有个更详细的讲解。
A:
关于这句
直观地看就是说”加入
pkg/
pkg/init.py
pkg/main.py
pkg/string.py
如果你在main.py中写
关于是自己写的应用程序还是发布出去的第三方的包,这句话的含义不太理解,参考:
http://blog.csdn.net/stan_pcf/article/details/60465665
from __future__ import absolute_import
希望有个更详细的讲解。
A:
相对导入:在不指明 package 名的情况下导入自己这个 package 的模块,比如一个 package 下有 a.py 和 b.py 两个文件,在 a.py 里 from . import b 即是相对导入 b.py。 绝对导入:指明顶层 package 名。比如 import a,Python 会在 sys.path 里寻找所有名为 a 的顶层模块。 from __future__ import absolute_import: 在 3.0 以前的旧版本中启用绝对导入等特性所必须的 future 语句。
关于这句
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了
关于是自己写的应用程序还是发布出去的第三方的包,这句话的含义不太理解,参考:
http://blog.csdn.net/stan_pcf/article/details/60465665
相关文章推荐
- from __future__ import absolute_import
- Python笔记——from __future__ import absolute_import的作用
- 使用from __future__ import unicode_literals时要注意的问题
- from __future__ import absolute_import的作用
- from __future__ import absolute_import的作用
- from __future__ import absolute_import
- from __future__ import unicode_literals
- rom __future__ import absolute_import 、 unicode_literals的作用
- from __future__ import absolute_import
- from __future__ import absolute_import
- from __future__ import absolute_import的作用
- python中的绝对导入与相对导入,from __future__ import absolute_import的区别
- from __future__ import absolute_import用法心得小结
- Python基础之--from __future__ import unicode_literals作用
- from __future__ import absolute_import
- from __future__ import absolute_import
- from __future__ import unicode_literals
- from __future__ import 作用
- 关于python 中的__future__模块(from __future__ import ***)
- 关于python 中的__future__模块(from __future__ import ***)