
def builtin_introspection():
    """
    Test des fonctions natives d'introspection de Python.

    Ici on teste les fonctions accessibles sans faire d'import,
    et qui permettent d'en savoir plus sur l'état du programme ou de
    ses variables.

    """
    data1 = "chaîne de caractères"
    # Fonction pour vérifier le type d'une variable
    print(isinstance(data1, str))
    print(issubclass(str, object))
    print(issubclass(str, int))
    print(type(data1))
    # Fonction pour accéder aux attributs d'une variable
    print(hasattr(data1, "manger"))
    print(hasattr(data1, "upper"))
    print(getattr(data1, "upper"))
    # Fonctions pour accéder à toutes les variables locales ou globales
    print(locals())
    print(globals())
    # Fonction qui affiche le texte d'aide pour une fonction, méthode etc.
    print(help(data1))
    print(help(data1.upper))


if __name__ == "__main__":
    builtin_introspection()
