absolute_import的作用是什么

这篇文章主要讲解了“absolute_import的作用是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“absolute_import的作用是什么”吧!

网站建设哪家好,找创新互联公司!专注于网页设计、网站建设、微信开发、微信小程序定制开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了阎良免费建站欢迎大家使用!

从字面意思,可以清晰的知道这个函数的作用是绝对路径导入,反之对应的就是相对路径。

绝对导入和相对导入之间的差异仅在从包导入模块和从包导入其他子模块时才起作用。拿下面的e.g.来说,在pkg下面有一个string.py文件,与python标准库中的string模块同名,里面的main.py文件有引用string模块,当我们从pkg包开始导入main.py的时候,如果没有absolute_import,就会引用pkg下的string模块,反之,就会从顶层路径查找string标准库

liang@iZ250k0mjlbZ:~$ mkdir pkg
liang@iZ250k0mjlbZ:~$ touch pkg/__init__.py
liang@iZ250k0mjlbZ:~$ touch pkg/string.py
liang@iZ250k0mjlbZ:~$ echo 'import string;print(string.ascii_uppercase)' > pkg/main1.py
liang@iZ250k0mjlbZ:~$ python
Python 2.7.12 (default, Dec  4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pkg.main1.py
Traceback (most recent call last):
  File "", line 1, in 
  File "pkg/main1.py", line 1, in 
    import string;print(string.ascii_uppercase)
AttributeError: 'module' object has no attribute 'ascii_uppercase'
>>> import pkg.main1
Traceback (most recent call last):
  File "", line 1, in 
  File "pkg/main1.py", line 1, in 
    import string;print(string.ascii_uppercase)
AttributeError: 'module' object has no attribute 'ascii_uppercase'
>>> import pkg.string
>>> exit()
liang@iZ250k0mjlbZ:~$ echo 'from __future__ import absolute_import;import string;print(string.ascii_uppercase)' > pkg/main2.py
liang@iZ250k0mjlbZ:~$ python
Python 2.7.12 (default, Dec  4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import pkg.main2
ABCDEFGHIJKLMNOPQRSTUVWXYZ
>>> exit()

unicode_literals 作用

字面意思,可以简单的看出是针对于unicode编码的,这个就涉及到python的编码历史问题了,python2默认是ascii编码,对于unicode编码的字符串,必须在签名添加u,e.g. u"测试",在python3解决了这个令人头疼的问题,默认编码采用了unicode编码,此库的作用就是为了python2向python3过渡,一旦引入,当前文件下的编码默认就是unicode,下面的例子直接展示了它的用途:

Python 2.7.12 (default, Dec  4 2017, 14:50:18)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> from __future__ import unicode_literals
>>> a=u"aaa"
>>> a
u'aaa'
>>> a="aaa"
>>> a
u'aaa'
>>>

感谢各位的阅读,以上就是“absolute_import的作用是什么”的内容了,经过本文的学习后,相信大家对absolute_import的作用是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是创新互联,小编将为大家推送更多相关知识点的文章,欢迎关注!


分享文章:absolute_import的作用是什么
转载来源:http://pwwzsj.com/article/goddjh.html