Files
training.python.beginner/source/07-objects/introspection/base.py
2025-07-04 19:26:39 +02:00

43 lines
1.3 KiB
Python

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()