Python · Avançado · Português · Técnico
avaliação adiada de anotações
Comportamento do Python 3.14 em que as anotações não são avaliadas na definição, mas só quando solicitadas. Assim, referências a nomes que ainda não existem passam a funcionar.
Onde usar
Resolve o problema de anotar um método com a própria classe ainda em construção, sem aspas nem import de __future__. Aparece ao migrar projetos e em bibliotecas que leem __annotations__.
Em código
class No:
def __init__(self, pai: No | None):
self.pai = pai
# 3.14: sem aspas e sem __future__
print(No.__init__.__annotations__)Exemplos
No 3.14 a anotação com a própria classe funciona sem aspas.
Libs que liam __annotations__ precisaram se adaptar à avaliação adiada.
Cuidado
Não confunda com from __future__ import annotations, que guarda tudo como string; no novo modelo as anotações são avaliadas sob demanda, e o módulo annotationlib ajuda a lê-las.
Sinônimos
anotações preguiçosas