N'avez-vous jamais rêvé de pouvoir obtenir d'une simple tabulation la liste des méthodes d'une classe ? De ne pas avoir à réécrire cette variable au nom tellement explicite qu'il en est trop long ? Heureusement, il est possible d'activer une autocomplétion très efficace dans notre interpréteur préféré  ! (Comment ai-je pu passer à côté jusqu'à aujourd'hui ?)

Cette astuce se base sur l'utilisation de GNU readline, et ne fonctionne donc pas sous Microsoft Windows.

Pour la mettre en place, il suffit de créer un fichier, nommé par exemple ~/.pythonrc qui contiendra des commandes exécutées au démarrage de l'interpréteur (uniquement en mode interactif), et d'y insérer le contenu suivant (provenant de la documentation du module rlompleter) :

(edit : voici une version modifiée pour permettre en plus d'indenter le code avec quatre espaces, source en commentaire.)

try:
import readline
except ImportError:
#print "Module readline not available."
pass
else:
import rlcompleter

class TabCompleter(rlcompleter.Completer):
"""Completer that supports indenting"""
def complete(self, text, state):
if not text:
return (' ', None)[state]
else:
return rlcompleter.Completer.complete(self, text, state)
readline.set_completer(TabCompleter().complete)
readline.parse_and_bind("tab: complete")

Il faut ensuite expliquer à l'interpréteur python de lire ce fichier à son démarrage. Cela se fait en définissant la variable d'environnement PYTHONSTARTUP, par exemple en insérant dans le fichier ~/.bashrc la ligne suivante :

export PYTHONSTARTUP="$HOME/.pythonrc"

Relancez bash, ouvrez python, et appréciez !