Esta documentação é de uma versão antiga do Python que não é mais atualizada. Você deveria atualizar e ler a documentação do Python para versão estável atual.

# 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

A conclusão dos nomes de variáveis e módulos é :ref: ativado <rlcompleter-config>automaticamente na inicialização do interpretador para que a chave :kbd: Tab` invoca a função de conclusão; Ele analisa os nomes das declarações Python, as variáveis locais atuais e os nomes dos módulos disponíveis. Para expressões pontilhadas como `` string.a``, ele avaliará a expressão até o `` ‘.’` final e então sugerirá conclusões dos atributos do objeto resultante. Observe que isso pode executar o código definido pelo aplicativo se um objeto com um método: meth: __getattr__ faz parte da expressão. A configuração padrão também guarda seu histórico em um arquivo chamado: file: .python_history no seu diretório de usuário. O histórico estará disponível novamente durante a próxima sessão de interpretação interativa.

## 14.2. Alternativas ao interpretador interativo

Esta facilidade é um enorme passo em frente em comparação com as versões anteriores do intérpretador; 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 intérprete. Um comando para verificar (ou mesmo sugerir) parênteses, citações, etc., também seria útil.

Um intérprete 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.