from __future__ import包的作用


__future__是python2的概念,其實是為了使用python2時能夠去調用一些在python3中實現的特性

1.absolute_import

from __future__ import absolute_import

這是一個在py2.x中導入3.x的導入特性的語句, 是為了區分出絕對導入和相對導入

聲明為絕對引用。因為在Python 2.4或之前默認是相對引用,即先在本目錄下尋找模塊。但是如果本目錄中有模塊名與系統(sys.path)模塊同名沖突,而想要引用的是系統模塊時,該聲明就能夠起作用了。這樣你調用import string時引入的就是系統的標准string.py,調用from pkg import string來引入當前目錄的string.py

⚠️但是其實最好是不要聲明與系統模塊同名的模塊,如果實在需要同名,最好使用from XXX import XXX來導入

 

2.division

from __future__ import division

在python3中默認是精確除法,而python2中默認的是截斷式除法,如果在python2想要使用精確除法,就使用這個語句來聲明

在python2中如果沒有聲明,那么除法默認的是截斷式除法,如:

(deeplearning2) userdeMBP:~ user$ python
Python 2.7.15 |Anaconda, Inc.| (default, Dec 14 2018, 13:10:39) 
[GCC 4.2.1 Compatible Clang 4.0.1 (tags/RELEASE_401/final)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 3/4
0
>>> from __future__ import division
>>> 3/4
0.75

當然,如果這個時候你想要使用截斷式除法,為:

>>> 3//4
0

 

3.print_function

from __future__ import print_function

即在python2中使用python3的print函數

>>> print 'now in python2 it is right'
now in python2 it is right
>>> print('now in python2 it is right too')
now in python2 it is right too

>>> from __future__ import print_function
>>> print 'now in python2 it is wrong'
  File "<stdin>", line 1
    print 'now in python2 it is wrong'
                                     ^
SyntaxError: invalid syntax
>>> print('now in python2 it is right')
now in python2 it is right

可見導入了后,使用python2的print則會報錯

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM