IntrospectionIntrospection

L’introspection est une technique avancée de programmation objet qui consiste à analyser un objet sans le connaître, par exemple afin d’obtenir la liste de ses attributs et leurs valeurs.

Pour l’introspection des individus, la méthode get_properties() permet d’obtenir la liste des propriétés pour lesquelles l’individu possède au moins une relation.

>>> onto.bactérie_inconnue.get_properties()  
{bacterie.a_pour_forme,  
 bacterie.a_pour_regroupement,  
 bacterie.gram_positif,  
 bacterie.nb_colonies} 

Il est ensuite possible d’obtenir et/ou de modifier ces relations. Les fonctions getattr(objet, attribut) et setattr(objet, attribut, valeur) de Python permettent de lire ou d’écrire un attribut d’un objet Python, lorsque le nom de l’attribut est connu dans une variable (voir chapitre Le langage Python : adoptez un serpent !, section Fonctions et opérateurs pour la programmation objet), par exemple :

>>> for prop in onto.bactérie_inconnue.get_properties():  
...     print(prop.name, "=", getattr(onto.bactérie_inconnue, prop.python_name)) 
a_pour_regroupement = [bacterie.en_amas1]  
a_pour_forme = bacterie.ronde1  
gram_positif = True  
nb_colonies = 6 

Les valeurs retournées sont les mêmes qu’avec la syntaxe « individu.propriété » : il s’agit d’une...

Pour consulter la suite, découvrez le livre suivant :
couv_EPPYTONT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Polymorphisme sur inférence de type
Suivant
Inverser les restrictions