import pdir def use_dir(): """ Découvrir l'introspection via la fonction `dir()` Nécessite pdir2 pour montrer une sortie plus sympa aux étudiants. """ # En python, tout est un objet, et a donc des attributs et des méthodes. # Le truc bien, c'est qu'en Python, on peut aussi manipuler et retrouver les # propriétés de ces attributs et méthodes. chaine = "Bonjour" # À la place de `pdir` on pouvait utiliser `dir` qui fait partie de python, # mais qui affiche la liste des attributs de l'objet de façon beaucoup moins # lisible. print(pdir(chaine)) def check_attrs(): """ Via l'introspection, accéder à des attributs d'objets programmatiquement. """ chaine = "Bonjour" # Une chaîne a toujours une méthode `capitalize`, donc ça va fonctionner if hasattr(chaine, "capitalize"): print("L'objet a bien une fonction `capitalize`.") print(getattr(chaine, "capitalize")) # Mais une chaîne n'a pas d'attribut `doesnotexist`. if hasattr(chaine, "doesnotexist"): print("L'objet a un attribut `doesnotexist`.") else: print("L'objet n'a pas d'attribut `doesnotexist`.") if __name__ == "__main__": print("Utilisation de la fonction `dir` :") use_dir() print("Utilisation de l'introspection d'attributs :") check_attrs()