通常语言中,一般高版本会向下兼容低版本,而低版本是不能往上兼容高版本的,但是比较有意思的是,在python中,低版本是可以兼容部分高版本的特性的。
__future__
模块就是做类似的事情,通过它可以将某些高版本中的特性引入到低版本中。
from __future__ import division
# 精确除法相关功能from __future__ import print_function
# 让print成为函数
在python 2中,除法是不精确的:
print(3 / 2) # 输出1
而引入精确除法后:
from __future__ import division
print(3 / 2) # 输出1.5
是不是很有意思:-)
同样,print在python 2中,它不是函数,引入新版特性后,会让它变成函数,从而会导致下面的写法报语法错误:
from __future__ import print_function
print 'hello' # 会报语法错误
所以,为了兼容python 2和3,建议print采用函数的写法,这样可以省掉兼容的处理。