擅长:python、mysql、java
<p>通过<code>__future__</code>模块的包含,您可以慢慢习惯不兼容的更改或引入新关键字的更改。</p>
<p>例如,要使用上下文管理器,必须在2.5中执行<code>from __future__ import with_statement</code>,因为<code>with</code>关键字是新的,不应该再用作变量名。为了在Python 2.5或更早版本中使用<code>with</code>作为Python关键字,需要使用上面的导入。</p>
<p>另一个例子是</p>
<pre><code>from __future__ import division
print 8/7 # prints 1.1428571428571428
print 8//7 # prints 1
</code></pre>
<p>如果没有<code>__future__</code>内容,两个<code>print</code>语句都将打印<code>1</code>。</p>
<p>内部区别在于,如果没有导入,<code>/</code>将映射到<code>__div__()</code>方法,而使用<code>__truediv__()</code>方法。(无论如何,<code>//</code>调用<code>__floordiv__()</code>。)</p>
<p>Apropos<code>print</code>:<code>print</code>成为3.x中的函数,失去作为关键字的特殊属性。所以情况正好相反。</p>
<pre><code>>>> print
>>> from __future__ import print_function
>>> print
<built-in function print>
>>>
</code></pre>