Completação por tab no shell interativo

Algo muito útil para quando estamos testando e estudando código Python, é termos um shell interativo que nos forneça completação de nomes de funções/atributos dos módulos/tipos disponíveis em Python. Qual a utilidade disso?

  1. Possibilita que lembremos daquela funçãozinha cujo nome esquecemos por falta de prática
  2. Auxilia no estudo, pois é possível conhecermos novas funções existentes nos módulos fornecidos juntamente com o Python, que muitas vezes facilitam várias tarefas em nossos programas

Bom, vamos ao que interessa. Abra em seu editor de textos o arquivo /home/nome_usuário/.pythonrc e cole o seguinte conteúdo dentro deste arquivo. Caso o arquivo não exista, não hesite em criá-lo!

import readline
import rlcompleter
readline.parse_and_bind('tab: complete')

Por fim, é necessário que você configure sua variável de ambiente PYTHONSTARTUP para possuir como valor o caminho do arquivo .pythonrc. Para isso, coloque em seu arquivo .bashrc o seguinte comando:

export PYTHONSTARTUP=~/.pythonrc

Após isso, abra um shell interativo python e faça um teste (<TAB> significa que você deve pressionar a tecla tab do seu teclado):

import string
string.<TAB><TAB>

Pronto, o shell Python deverá lhe mostrar várias opções de funções disponíveis no módulo string. A Figura 1 apresenta o shell python oferecendo opções de completação para o módulo atexit.

Completação no Shell Python

Figura 1. Completação no Shell Python

Um comentário sobre “Completação por tab no shell interativo

  1. Gostei da dica.

    Eu a executei, mas o python da minha máquina inicialmente reclamou da codificação do arquivo ,pythonrc. Pois havia colocado alguns comentários com palavras com acentos e cecedilha.

    A mensagem de erro era:
    “SyntaxError: Non-ASCII character ‘\xc3’ in file /$HOME/.pythonrc
    SyntaxError: Non-ASCII character ‘\xc3’ in file $HOME/.pythonrc on line 1, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details”

    O auto-completar do TAB não funcionava.
    Só consegui resolver esse problema inserindo no início do arquivo .pythonrc a seguinte linha: # -*- coding: UTF-8 -*-
    Inté +

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s