title: What is __future__ in Python used for and how/when to use it, and how it works
body: <p><code>__future__</code> frequently appears in Python modules. I do not understand what <code>__future__</code> is for and how/when to use it even after reading <a href="http://docs.python.org/library/__future__.html" rel="noreferrer">the Python's <code>__future__</code> doc</a>. </p>
  
  <p>Can anyone explain with examples?</p>
  
  <p>A few answers regarding the basic usage of <code>__future__</code> I've received seemed correct. </p>
  
  <p>However, I need to understand one more thing regarding how <code>__future__</code> works:</p>
  
  <p>The most confusing concept for me is how a current python release includes features for future releases, and how a program using a feature from a future release can be be compiled successfully in the current version of Python.</p>
  
  <p>I am guessing that the current release is packaged with potential features for the future. However, the features are available only by using <code>__future__</code> because they are not the current standard. Let me know if I am right.</p>