Você já se deparou com aquela enxurrada de Exceptions que nunca tem fim e nunca entendeu o que aconteceu afinal? Fique tranquilo, não é só você que não entende, este erro acontece com a gente também!

Pensando nisso, o desenvolvedor Pablo Galindo – responsável pelos releases das versões 3.10 e 3.11 – soltou o seguinte tuite:

Nele, tivemos muito engajamento sobre mensagens de erro melhoradas, como, por exemplo, para os operadores de comparação (!=, == e etc) com os de atribuição (:=, =). Alguns erros que as pessoas comentaram já tinham sido corrigidos pelo dev.

>>> # Python 3.10a7
>>> def f()
  File "<stdin>", line 1
    def f()
          ^
SyntaxError: expected ':'

Ou:

>>> # Python 3.10a7
>>> a = 1
>>> b = 2
>>> if a = b:
  File "<stdin>", line 1
    if a = b:
       ^^^^^
SyntaxError: invalid syntax. Maybe you meant '==' or ':=' instead of '='?

É uma melhoria simples, porém permite entendermos muito mais qual o erro de sintaxe que cometemos e como ele pode ser corrigido pelo desenvolvedor e facilitará também o ensino da linguagem para os diversos desenvolvedores iniciantes pelo mundo.

Um outro exemplo de erro melhorado é a sugestão de atributos e de funções de um determinado módulo: nesta nova versão, o interpretador sugerirá atributos com nomes próximos ao que foi digitado, permitindo uma melhoria mais rápida no código.

>>> # Python 3.10a7
>>> import collections
>>> collections.namedtoplo
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'collections' has no attribute 'namedtoplo'. Did you mean: 'namedtuple'?

Ademais, são estas algumas das melhorias disponíveis no changelog do Python 3.10, disponível clicando aqui!