Может ли импорт из __future__ гарантировать совместимость с Python 2 и 3?

Меня не интересует разогрев «Python 2 или Python 3?" вопросы (хотя самому последнему , который я нашел, больше года), но я наткнулся на это утверждение:

Вы можете написать код Python 3 под Python 2, если ваш файл начинается со строкой:

from __future__ import absolute_import, Division, генераторы, unicode_literals, print_function, вложенные_области, with_statement

С этой строкой ваш код будет работать либо с Python 2, либо с Python 3. Могут быть редкие случаи, когда он не работает, но у меня не нашел ни одного,

Это правда? Достаточно ли этой единственной строки, чтобы убедиться, что код, который вы пишете, будет работать как на Python 2.x (>=2.5, я полагаю), так и на 3.x (при условии, что импортированные модули доступны в обоих)?

12
задан Community 23 May 2017 в 12:01
поделиться