Need Python 3.4 Version Of Print() From __future__
Currently, when I from __future__ import print_function from Python 2.7.6, I apparently get a version of print() prior to the addition of the flush keyword argument, which went in
Solution 1:
You cannot get the version from 3.4 imported into Python 2.7, no. Just flush sys.stdout
manually after printing:
import sys
print(...)
sys.stdout.flush()
Or you can create a wrapper function around print()
if you have to have something that accepts the keyword argument:
from __future__ import print_function
import sys
try:
# Python 3import builtins
except ImportError:
# Python 2import __builtin__ as builtins
defprint(*args, **kwargs):
sep, end = kwargs.pop('sep', ' '), kwargs.pop('end', '\n')
file, flush = kwargs.pop('file', sys.stdout), kwargs.pop('flush', False)
if kwargs:
raise TypeError('print() got an unexpected keyword argument {!r}'.format(next(iter(kwargs))))
builtins.print(*args, sep=sep, end=end, file=file)
if flush:
file.flush()
This creates a replacement version that'll work just the same as the version in 3.3 and up.
Post a Comment for "Need Python 3.4 Version Of Print() From __future__"