IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Découverte de l'interpréteur interactif IPython


précédentsommairesuivant

II. Introspection dynamique

L'introspection dynamique consiste à proposer dynamiquement (c'est-à-dire en fonction du contexte) une liste de choix possibles des différentes propriétés ou méthodes d'un objet.

On obtient ce comportement de l'interpréteur en saisissant le début de l'objet que l'on souhaite utiliser avec la touche [TAB]

II-A. Complétion

IPython utilise l'implémentation de la complétion de readline.

Grâce à IPython, vous pouvez utiliser la complétion sur :

  • Mots clé par exemple import, def, class
  • Méthodes, par exemple os.path.abdpath()
  • Variables
  • Ou bien sur les noms de fichier dans le répertoire courant

Prenons un exemple simple, nous souhaitons récupérer dans une variable le chemin courant dans lequel nous sommes.

D'abord, on doit importer le module os.

 
Sélectionnez
imp<TAB>

Taper sur tabulation a pour effet de compléter automatiquement le mot clé import.

Image non disponible

Finissons d'importer le module OS :

 
Sélectionnez
import OS

Ensuite nous souhaitons mettre le chemin courant dans la variable repertoireCourant :

 
Sélectionnez
repertoireCourant = os.get<TAB>

Cette fois, taper sur la touche tabulation a pour effet de proposer les choix possibles pour les méthodes et propriétés possibles du module os (commençant par get dans notre exemple). Une fois la bonne méthode trouvée, getcwd() en l'occurrence, nous récupérons le chemin dans la variable repertoireCourant.

Image non disponible

Enfin, nous voulons afficher le contenu de la variable repertoireCourant :

 
Sélectionnez
print rep<TAB>

Cette fois, taper sur la touche tabulations nous permet de récupérer le nom de la variable que l'on recherche sous la forme d'une liste de variables disponibles dans le contexte de notre recherche :

Image non disponible

II-B. Définitions de fonctions

Étant donné la multitude de classes et par extension de méthodes et de propriétés qui en dépendent, il n'est pas évident de connaître par cœur toutes les définitions.

IPython offre la possibilité de lire rapidement les docstrings (documentation interne) d'un module, d'une classe, d'une méthode ou d'une propriété.

Reprenons l'exemple précédent en cherchant la documentation de la méthode getcwd()

 
Sélectionnez
os.getcwd?
Image non disponible

Le docstring nous indique que cette méthode retourne le chemin courant sous forme d'une chaine de caractères.

II-C. Code source d'un module

De même, IPython offre la possibilité d'obtenir très simplement le code source d'une méthode.
Par exemple, pour connaître le code source de la méthode basename() du module os :

 
Sélectionnez
os.path.basename??
Image non disponible

Vous constatez qu'un champ Source a été ajouté et qu'il contient le code de la méthode. Cette fonctionnalité ne marche qu'avec des modules écrits en Python. Vous ne pourrez pas voir le source d'un module écrit en C par exemple le module pysvn (utilisation en python du gestionnaire de version subversion).

Cette fonctionnalité nous permet de comprendre rapidement ce que fait notre méthode et comment elle s'utilise.

II-D. Désignation de l'emplacement du fichier source du module

Quand vous utilisez la fonction ? ou ?? vous remarquerez la présence d'un champ File qui représente le chemin absolu du module interrogé.

Pour reprendre notre exemple de la fonction os.path.basename()

Image non disponible

On peut alors voir que notre module est à l'emplacement suivant : c:\python25\lib\ntpath.py.


précédentsommairesuivant

Copyright © 2007 Eric POMMEREAU Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.