我们在读代码的时候,总是会看到代码开头会加上from __future__ import *
这样的语句。这样的做法的作用就是将新版本的特性引进当前版本中,也就是说我们可以在当前版本使用新版本的一些特性。
__future__
是py2的概念,对应py2,py3就是future,这是为了在是py2的时候还能用到一些新版本的特性而做成的包。
意思禁用py2的import特性改成用py3的import的特性,把下一个新版本的特性导入到当前版本,于是我们就可以在当前版本中测试一些新版本的特性。
想查看有哪些新特性,可以使用下面的代码:
# python 3.8.12
>>> import __future__
>>> print(__future__.all_feature_names)
['nested_scopes', 'generators', 'division', 'absolute_import', 'with_statement', 'print_function', 'unicode_literals', 'barry_as_FLUFL', 'generator_stop', 'annotations']
例如,在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__模块还有很多其他功能。
未完待续。。。。。。