__future__ em Python
-
Use
__future__paraprint_functionem Python -
Use
__future__paraunicode_lateralsem Python -
Use
__future__para divisão em Python -
Use
__future__paraabsolute_importem Python -
Use
__future__paraannotationsem Python -
Use
__future__para escopos aninhados -
Use
__future__para geradores Python -
Use
__future__para a declaraçãowith
__future__ foi introduzido no Python 2.1, e suas instruções mudam a forma como o Python interpreta o código. Diz ao interpretador para compilar algumas instruções como aquelas que estarão disponíveis em versões futuras do Python, ou seja, o Python usa from __future__ import feature para transportar os recursos de versões superiores do Python para o interpretador atual.
Sempre que você vir from __future__ import, significa que um recurso da versão mais recente ou futura do Python foi transportado para uma versão anterior.
Este tutorial discutirá os recursos já habilitados no Python 3 em versões anteriores do Python usando __future__.
Use __future__ para print_function em Python
Usar a palavra-chave print como uma função em vez de uma instrução traz muita flexibilidade, o que ajuda a estender a capacidade da palavra-chave print. A função principal de from __future__ import print_function é trazer a função print do Python 3 para o Python 2.
Por exemplo,
from __future__ import print_function
for x in range(0, 10):
print(x, sep=" ", end="")
Resultado:
0123456789
Observe que print aqui é usado como uma função, que antes era usada como uma instrução no Python 2.x
Use __future__ para unicode_laterals em Python
Isso permite que você altere o tipo de literais de string.
Literais de string são ‘str’ por padrão no Python 2, mas se usarmos from __future__ import unicode_literals, o tipo de literal de string muda para Unicode.
Por exemplo,
type("h")
Resultado:
<type 'str'>
Mas com from __future__ import unicode_literals obtemos a seguinte saída.
from __future__ import unicode_literals
type("h")
Resultado:
<type 'unicode'>
Observe que usando from __future__ import, não precisamos prefixar cada string com u para tratá-la como um Unicode.
Use __future__ para divisão em Python
Nas versões Python 2.x, a divisão clássica é usada.
print(8 / 7)
Resultado
0
Uma divisão simples de 8 por 7 retorna 0 em Python 2.x.
O uso de from __future__ import division permite que um programa Python 2 use __truediv__().
Por exemplo,
from __future__ import division
print(8 / 7)
Resultado:
1.1428571428571428
Use __future__ para absolute_import em Python
No Python 2, você só poderia ter importações relativas implícitas, enquanto no Python 3, você pode ter importações explícitas ou absolutas. __future__ import absolute_import permite que o parêntese tenha várias instruções de importação entre colchetes.
Por exemplo,
from Tkinter import Tk, Frame, Button, Entry, Canvas, Text, LEFT, DISABLED, NORMAL, END
Observe que, sem o recurso __future__ import absolute_import, você não poderá incluir várias instruções import em uma linha de código.
Use __future__ para annotations em Python
Anotações são expressões Python associadas a diferentes partes de uma função.
Aqui, usando from __future__ import annotations, as alterações de como digitar as anotações são avaliadas em um módulo Python. Ele adia a avaliação das anotações e trata magicamente todas as anotações como anotações diferentes.
Por exemplo,
from __future__ import annotations
class C:
@classmethod
def make(cls) -> C:
return cls
Observe que o código acima só funcionaria se __future__ import fosse escrito na parte superior do código, pois muda a forma como o Python interpreta o código, ou seja, trata as anotações como strings individuais.
Use __future__ para escopos aninhados
Com a adição de __future__ import nested_scopes, escopos estaticamente aninhados foram introduzidos no Python. Ele permite que os seguintes tipos de código sejam executados sem retornar um erro.
def h():
...
def m(value):
...
return m(value - 1) + 1
...
Observe que o código acima teria gerado um NameError antes do Python 2.1.
Use __future__ para geradores Python
Um gerador é uma função em Python definida como uma função regular. Ainda assim, ele faz isso com a palavra-chave “yield”, e não com o retorno, sempre que precisa gerar um valor específico.
Aqui, com o uso de from __future__ import generators, funções de gerador foram introduzidas para salvar estados entre chamadas de função sucessivas.
Por exemplo,
def gen():
c, d = 0, 1
while 1:
yield d
c, d = d, c + d
Use __future__ para a declaração with
Isso elimina o uso das instruções try...except adicionando a instrução with como uma palavra-chave em Python. É usado principalmente ao fazer E / S de arquivo, conforme mostrado no exemplo abaixo.
with open("workfile", "h") as a:
read_data = a.read()