Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Connaître l'interface d'un type

2 réponses
Avatar
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

2 réponses

Avatar
Bruno Desthuilliers
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'...
Avatar
Guillaume Lemaître
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