Skip to content

Latest commit

 

History

History
23 lines (20 loc) · 998 Bytes

013.关于__future__模块.md

File metadata and controls

23 lines (20 loc) · 998 Bytes

通常语言中,一般高版本会向下兼容低版本,而低版本是不能往上兼容高版本的,但是比较有意思的是,在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采用函数的写法,这样可以省掉兼容的处理。