Melhore a compatibilidade do seu código Python 2 com o Python 3, usando o módulo future.

Como o nome diz, o módulo future do Python 2, contém bibliotecas que fazem uma ponte entre a versão legada da linguagem e suas novas características.
No Debian 9, a instalação padrão do Python já traz a biblioteca instalada e pronta para uso.
Em outras distribuições GNU/Linux ou sistemas operacionais, pode ser necessário fazer a instalação.
Use o PIP, para isto:


pip install future

Uma vez instalada, é fácil testar a biblioteca.
Rode a shell do Python 2.x com o seguinte código:


python

Python 2.7.13 (default, Jan 19 2017, 14:48:08) 
[GCC 6.3.0 20170118] on linux2
Type "help", "copyright", "credits" or "license" for more information.

>>> import __future__

>>> 

A biblioteca pode fazer com que operações numéricas simples ofereçam resultados de acordo com a versão 3 — só que dentro da versão 2, da linguagem:
Veja este exemplo, executado dentro da shell do Python 2:


>>> 3/2

1

>>> from __future__ import division
>>> 3/2

1.5
>>> 

Como você pode observar, na primeira operação de divisão (3 dividido por 2), o Python retorna o resultado, de acordo com o seu legado: operações envolvendo números inteiros, devem dar resultados inteiros.
Após importar a biblioteca division, do módulo __future__, o Python 2 permite que o resultado da operação seja exibido como floating point number.
Se você usa a versão 2.6, ou anterior, do Python, pode precisar instalar, ainda, instalar os pacotes importlib, unittest2 e argparse:


pip install importlib
pip install unittest2
pip install argparse

Nas versões 2.7+ do Python, os pacotes já estão lá.

O módulo __future__, permite usar funcionalidades do Python 3 em um ambiente Python 2.
Fique atento: algumas funcionalidades são sobrescritas.

Funções, como o print(), passam a substituir o print legado, do Python 2.
Da mesma forma, a divisão clássica é sobrescrita pela forma do Python 3.
Se você está começando a escrever código, relacionado a algum projeto novo (para rodar no Python 2), mas quer que este “já nasça” compatível com o Python 3.x, inclua estas 3 linhas no início de cada módulo:


from __future__ import (absolute_import, division,
                        print_function, unicode_literals)
from builtins import *

Daí para frente, escreva tudo em Python 3.
Se precisa se aprofundar mais no assunto, segue a documentação abaixo.

Referências

http://python-future.org/quickstart.html.

https://pypi.python.org/pypi/future.

Assinar blog por e-mail

Digite seu endereço de e-mail para assinar este blog e receber notificações de novas publicações por e-mail.

Junte-se a 49 outros assinantes

Deixe uma resposta