python中 from __future__ import * 的作用

我们在读代码的时候,总是会看到代码开头会加上from __future__ import *这样的语句。这样的做法的作用就是将新版本的特性引进当前版本中,也就是说我们可以在当前版本使用新版本的一些特性。

例如,在python2.x和python3.x中print的标准写法分别是,

# python 2.x
print "Hello World"

# python 3.x
print("Hello World")

如果你想用python2.x体验python3.x的写法,就可以使用from __future__ import print_function来实现,

# python 2.x
from __future__ import print_function
print("Hello World")

而这时候如果再使用原来python2.x的标准写法就会报错,

# python 2.x
from __future__ import print_function
print "Hello World"

>>> print "Hello World"
  File "<stdin>", line 1
    print "Hello World"
                      ^
SyntaxError: invalid syntax

除了print函数,__future__模块还有很多其他功能,

1. 整数除法

# python 2.x
5/2
>>> 2

from __future__ import division
5/2
>>> 2.5

2. with 用法

# python 2.x
try:
    with open('test.txt', 'w') as f:
    f.write('Hello World')
finally:
    f.close()

# 用with替代上述异常检测代码:
from __future__ import with_statement
with open('test.txt', 'w') as f:
    f.write('Hi there!')

3. 绝对引入(absolute_import)

绝对引入主要是针对python2.4及之前的版本的,这些版本在引入某一个.py文件时,会首先从当前目录下查找是否有该文件。如果有,则优先引用当前包内的文件。而如果我们想引用python自带的.py文件时,则需要使用,

from __future__ import absolute_import

猜你喜欢

转载自blog.csdn.net/zzc15806/article/details/81133045
今日推荐