The new Python 3.6 f-strings seem like a huge jump in string usability to me, and I would love to jump in and adopt them whole heartedly on new projects which might be running on older interpreters. 2.7, 3.3-3.5 support would be great but at the very least I would like to use these in Python 3.5 code bases. How can I import 3.6's formatted string literals for use by older interpreters?
I understand that formatted string literals like f"Foo is {age} {units} old"
are not breaking changes, so would not be included in a from __future__ import ...
call. But the change is not back-ported (AFAIK) I would need to be sure that whatever new code I write with f-strings is only ran on Python 3.6+ which is a deal breaker for a lot of projects.
future-fstrings brings f-strings to Python 2.7 scripts. (And I assume 3.3-3.5 based on the documentation.)
Once you pip install it via pip install future-fstrings
, you have to place a special line at the top of your code. That line is:
# -*- coding: future_fstrings -*-
Then you can use formatted string literals (f-strings) within your code:
# -*- coding: future_fstrings -*-
var = 'f-string'
print(f'hello world, this is an {var}')