Connaître l'interface d'un type

Le
Guillaume Lemaître
Bonjour,

Y a-t-il un outil standard pour connaître toutes les méthodes
disponibles (implémentées ou non d'ailleurs) par un type donné ?

Guillaume
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Bruno Desthuilliers
Le #19889901
Guillaume Lemaître a écrit :
Bonjour,

Y a-t-il un outil standard pour connaître toutes les méthodes
disponibles (implémentées ou non d'ailleurs) par un type donné ?



Si une méthode n'est pas implémentée, elle n'est pas disponible !-)

Dans l'absolu, ce que tu demande n'est pas possible, Python est bien
trop dynamique pour ça. Entre autres, on peut à l'exécution ajouter ou
enlever des attributs (ce qui inclue les méthodes) à une classe (ce qui
affectera les instances déjà créées) ou à une instance. Et puis il y a
aussi la méthode __getattr__, qui permet de résoudre dynamiquement un
attribut (appelable ou non) qui ne sera pas visible par introspection.
Et encore d'autres trucs qui relèvent presque de la magie noire...

Bref, en Python, la notion de 'type' est assez différente de ce qu'on
peut voir en Java (ou autre langage plus statique).

Après, dans la pratique, la fonction dir permet d'avoir une liste
(presque) complète des attributs d'un objet (donc d'une classe
puisqu'une classe est un objet), et il existe pas mal de fonctionnalités
plus spécialisées dans le module inspect.

A noter aussi, dans le shell interactif, la commande 'help'...
Guillaume Lemaître
Le #19891431
Bruno Desthuilliers a écrit :
Guillaume Lemaître a écrit :
Bonjour,

Y a-t-il un outil standard pour connaître toutes les méthodes
disponibles (implémentées ou non d'ailleurs) par un type donné ?



Si une méthode n'est pas implémentée, elle n'est pas disponible !-)

Dans l'absolu, ce que tu demande n'est pas possible, Python est bien
trop dynamique pour ça. Entre autres, on peut à l'exécution ajouter ou
enlever des attributs (ce qui inclue les méthodes) à une classe (ce qui
affectera les instances déjà créées) ou à une instance. Et puis il y a
aussi la méthode __getattr__, qui permet de résoudre dynamiquement un
attribut (appelable ou non) qui ne sera pas visible par introspection.
Et encore d'autres trucs qui relèvent presque de la magie noire...

Bref, en Python, la notion de 'type' est assez différente de ce qu'on
peut voir en Java (ou autre langage plus statique).

Après, dans la pratique, la fonction dir permet d'avoir une liste
(presque) complète des attributs d'un objet (donc d'une classe
puisqu'une classe est un objet), et il existe pas mal de fonctionnalités
plus spécialisées dans le module inspect.

A noter aussi, dans le shell interactif, la commande 'help'...




Merci, ce que je cherchais correspond assez à ce que peut fournir la
commande interactive 'help'.

Guillaume
Publicité
Poster une réponse
Anonyme