principlepythonCriticalCanonical
What is __future__ in Python used for and how/when to use it, and how it works
Viewed 0 times
how__future__anduseduseforwhenworkswhatpython
Problem
The
Can anyone explain with examples?
A few answers regarding the basic usage of
However, I need to understand one more thing regarding how
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 compiled successfully in the current version of Python.
I am guessing that the current release is packaged with potential features for the future. However, the features are available only by using
__future__ module frequently appears in Python modules. I do not understand what __future__ is for and how/when to use it even after reading the Python's __future__ doc.Can anyone explain with examples?
A few answers regarding the basic usage of
__future__ I've received seemed correct.However, I need to understand one more thing regarding how
__future__ works: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 compiled successfully in the current version of Python.
I am guessing that the current release is packaged with potential features for the future. However, the features are available only by using
__future__ because they are not the current standard. Let me know if I am right.Solution
With
E.g., for using context managers, you had to do
Another example is
Without the
The internal difference is that without that import,
Apropos
__future__ module's inclusion, you can slowly be accustomed to incompatible changes or to such ones introducing new keywords.E.g., for using context managers, you had to do
from __future__ import with_statement in 2.5, as the with keyword was new and shouldn't be used as variable names any longer. In order to use with as a Python keyword in Python 2.5 or older, you will need to use the import from above.Another example is
from __future__ import division
print 8/7 # prints 1.1428571428571428
print 8//7 # prints 1Without the
__future__ stuff, both print statements would print 1.The internal difference is that without that import,
/ is mapped to the __div__() method, while with it, __truediv__() is used. (In any case, // calls __floordiv__().)Apropos
print: print becomes a function in 3.x, losing its special property as a keyword. So it is the other way round.>>> print
>>> from __future__ import print_function
>>> print
>>>Code Snippets
from __future__ import division
print 8/7 # prints 1.1428571428571428
print 8//7 # prints 1>>> print
>>> from __future__ import print_function
>>> print
<built-in function print>
>>>Context
Stack Overflow Q#7075082, score: 539
Revisions (0)
No revisions yet.