II TABLE DES MATIÈRES
6.3 La fonction dir() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
6.4 Packages . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
6.4.1 Importer *d’un package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
6.4.2 Référence intra-package . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
6.4.3 Packages multi-répertoires ..................................... 41
7 Entrées et sorties 43
7.1 Formatage raffiné de sortie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
7.1.1 Formatage de chaînes à l’ancienne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.2 Lire et écrire dans des fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
7.2.1 Méthodes sur les objets fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
7.3 Sauvegarde de données structurées avec json . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
8 Erreurs et exceptions 49
8.1 Les erreurs de syntaxe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
8.2 Exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
8.3 Gérer les exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
8.4 Lancer des exceptions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
8.5 Exceptions définies par l’utilisateur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
8.6 Définir des actions de nettoyage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
8.7 Actions de nettoyage prédéfinies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
9 Classes 55
9.1 Un mot sur les noms et les objets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
9.2 Portées et espaces de noms dans Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
9.2.1 Exemple de portée et d’espace de noms . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
9.3 Un premier coup d’œil aux classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
9.3.1 Syntaxe de définition de classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
9.3.2 Objets classe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
9.3.3 Objets instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
9.3.4 Objets méthode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
9.3.5 Variables de classe et variables d’instance . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
9.4 Quelques remarques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60
9.5 Héritage . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
9.5.1 Héritage multiple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
9.6 Variables privées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
9.7 Un peu de tout . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
9.8 Les exceptions sont aussi des classes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
9.9 Itérateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
9.10 Générateurs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
9.11 Expressions génératrices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
10 Visite de la bibliothèque standard 67
10.1 Interface système . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
10.2 Caractères joker pour fichiers . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
10.3 Arguments de la ligne de commande . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
10.4 Redirection de la sortie d’erreurs et terminaison de programme . . . . . . . . . . . . . . . . . . . 68
10.5 Correspondance de motifs de chaînes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
10.6 Mathématiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
10.7 Accès à Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
10.8 Date et heure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
10.9 Compression de données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
10.10 Mesure de performances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
10.11 Contrôle qualité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
10.12 Piles fournies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
11 Seconde visite de la bibliothèque standard 73
11.1 Formatage de sorties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
11.2 Modèles de chaînes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
11.3 Gérer des données binaires structurées . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
11.4 Multi-threading . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
11.5 Journalisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
11.6 Références faibles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
11.7 Utilitaires pour les listes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76