Sommaire

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 ...