14. Edição de entrada interativa e substituição de histórico¶
Algumas versões do interpretador Python suportam a edição da linha de entrada atual e a substituição da história, semelhante às habilidade encontradas no shell Korn e no shell GNU Bash. Isso é implementado usando a biblioteca GNU Readline, que oferece suporte a vários estilos de edição. Esta biblioteca possui sua própria documentação, que não vamos duplicar aqui.
14.1. Tab Completion e Histórico de Edição¶
Completion of variable and module names is
automatically enabled at interpreter startup so
that the Tab key invokes the completion function; it looks at
Python statement names, the current local variables, and the available
module names. For dotted expressions such as string.a
, it will evaluate
the expression up to the final '.'
and then suggest completions from
the attributes of the resulting object. Note that this may execute
application-defined code if an object with a __getattr__()
method
is part of the expression. The default configuration also saves your
history into a file named .python_history
in your user directory.
The history will be available again during the next interactive interpreter
session.
14.2. Alternativas ao interpretador interativo¶
Esta facilidade é um enorme passo em frente em comparação com as versões anteriores do interpretador; No entanto, alguns desejos são deixados: seria bom se a indentação adequada fosse sugerida nas linhas de continuação (o analisador sabe se é necessário um token de recuo). O mecanismo de conclusão pode usar a tabela de símbolos do interpretador. Um comando para verificar (ou mesmo sugerir) parênteses, citações, etc., também seria útil.
Um interpretador interativo aprimorado e alternativo que existe há algum tempo é o IPython, que apresenta a conclusão da guia, a exploração de objetos e o gerenciamento de histórico avançado. Também pode ser completamente personalizado e incorporado em outras aplicações. Outro ambiente interativo aprimorado similar é bpython.