Book description
Un livre unique pour aller plus loin dans la mise en oeuvre de vos développements Python
La simplicité du langage Python permet d'être productif très rapidement mais cela ne signifie pas que vous utilisez tout le potentiel du langage. Avec ce livre en mains, vous allez apprendre à coder en Python de manière beaucoup plus efficace en découvrant des caractéristiques du langage ignorées de beaucoup. L'auteur, Luciano Ramalho vous guide dans un voyage intitiatique à travers les bibliothèques et les éléments du langage les plus intéressants. Vos nouvelle connaissances vous permettront de réduire vos lignes de codes et de rendre vos programmes plus rapides et globalement plus efficaces.
Au programme :
Le modèle de données de Python
Les structures de données
Les fonctions et les objets
Classes, références, interfaces et opérateurs
Le contrôle du flux
La métaprogrammation
Table of contents
- Couverture
- Programmer en Python - Apprendre la programmation de façon claire, concise et efficace - collection O'Reilly
- Copyright
- Préface
- PARTIE I. Prologue
-
PARTIE II. Structures de données
-
CHAPITRE 2. Un réseau de séquences
- Généralités sur les séquences natives
- Compréhensions de listes et expressions générateurs
- Les tuples ne sont pas seulement des listes immuables
- Tranchage
- Utilisation de + et * avec les séquences
- Affectation augmentée avec les séquences
- list.sort et la fonction native sorted
- Gérer les séquences ordonnées avec bisect
- Quand une liste n’est pas la réponse
- Résumé du chapitre
- Lectures complémentaires
-
CHAPITRE 3. Dictionnaires et ensembles
- Types de mappage génériques
- Compréhensions de dictionnaires
- Aperçu des méthodes de mappage courantes
- Mappages avec recherche de clé souple
- Sous-classer UserDict
- Mappages immuables
- Théorie des ensembles
- dict et set : levons le capot
- Résumé du chapitre
- Lectures complémentaires
-
CHAPITRE 4. Texte contre octets
- Questions de caractère
- L’essentiel sur les octets
- Codeurs/décodeurs de base
- Comprendre les problèmes d’encodage/décodage
- Gestion des fichiers de texte
- Normaliser Unicode pour des comparaisons plus sûres
- Trier du texte Unicode
- La base de données Unicode
- API dual-mode str et bytes
- Résumé du chapitre
- Lectures complémentaires
-
CHAPITRE 2. Un réseau de séquences
-
PARTIE III. Les fonctions en tant qu'objets
-
CHAPITRE 5. Fonctions de première classe
- Traiter une fonction comme un objet
- Fonctions d’ordre supérieur
- Fonctions anonymes
- Les sept saveurs des objets appelables
- Types d’appelables définis par l’utilisateur
- Introspection de fonctions
- Paramètres positionnels et paramètres nommés
- Récupérer des informations sur les paramètres
- Annotations de fonction
- Packages pour la programmation fonctionnelle
- Résumé du chapitre
- Lectures complémentaires
- CHAPITRE 6. Patrons de conception avec des fonctions de première classe
-
CHAPITRE 7. Décorateurs et fermetures de fonctions
- Décorateurs 101
- Exécution des décorateurs par Python
- Patron de stratégie amélioré par un décorateur
- Règles relatives à la portée variable
- Fermetures
- La déclaration nonlocal
- Implémenter un décorateur simple
- Décorateurs dans la bibliothèque standard
- Décorateurs empilés
- Décorateurs paramétrés
- Résumé du chapitre
- Lectures complémentaires
-
CHAPITRE 5. Fonctions de première classe
-
PARTIE IV. Idiomes orientés objet
- CHAPITRE 8. Références d’objets, muabilité, et recyclage
-
CHAPITRE 9. Un objet Pythonique
- Représentations d’objets
- Retour vers la classe vectorielle
- Un constructeur alternatif
- Classmethod versus staticmethod
- Affichages formatés
- Un Vector2d hachable
- Attributs privés et « protégés » en Python
- Gagner de l’espace avec l’attribut de classe __slots__
- Remplacer les attributs de classe
- Résumé du chapitre
- Lectures complémentaires
-
CHAPITRE 10. Piratage de séquence, hachage et tranchage
- Vector : un type de séquence défini par l’utilisateur
- Vector, Prise #1 : compatibilité avec Vector2d
- Protocoles et duck typing
- Vector, Prise #2 : une séquence tranchable
- Vector, Prise #3 : accès dynamique aux attributs
- Vector, Prise #4 : hachage et un == plus rapide
- Vector, Prise #5 : formatage
- Résumé du chapitre
- Lectures complémentaires
-
CHAPITRE 11. Interfaces : des protocoles aux ABC
- Interfaces et protocoles dans la culture Python
- Python et les séquences
- Monkey patching pour implémenter un protocole lors de l’exécution
- La sauvagine d’Alex Martelli
- Sous-classer une ABC
- Les ABC dans la bibliothèque standard
- Définir et utiliser une ABC
- Comment les sous-classes de Tombola ont été testées
- Utiliser register dans la pratique
- Les oies peuvent se comporter comme des canards
- Résumé du chapitre
- Lectures complémentaires
-
CHAPITRE 12. Héritage : pour le meilleur ou pour le pire
- Le sous-classement des types natifs est délicat
- Héritage multiple et ordre de résolution de méthode
- Héritage multiple dans le monde réel
-
Faire face à l’héritage multiple
- 1. Distinguer l’héritage d’interface de l’héritage d’implémentation
- 2. Rendre les interfaces explicites avec les ABC
- 3. Utilisation des mixins pour la réutilisation du code
- 4. Rendre les mixins explicites en les nommant
- 5. Une ABC peut aussi être un mixin ; l’inverse n’est pas vrai
- 6. Ne pas sous-classer depuis plus d’une classe concrète
- 7. Fournir des classes agrégées aux utilisateurs
- 8. « Favoriser la composition des objets plutôt que l’héritage de classe »
- Tkinter : le bon, le mauvais et le laid
- Un exemple moderne : les mixins dans les vues génériques de Django
- Résumé du chapitre
- Lectures complémentaires
- CHAPITRE 13. Surcharge des opérateurs : bien faire les choses
-
PARTIE V. Contrôler les flux
-
CHAPITRE 14. Itérables, itérateurs et générateurs
- Sentence, Prise #1 : une séquence de mots
- Les itérables versus les itérateurs
- Sentence, Prise #2 : un itérateur classique
- Sentence, Prise #3 : une fonction générateur
- Sentence, Prise #4 : une implémentation paresseuse
- Sentence, Prise #5 : une expression générateur
- Quand utiliser les expressions générateurs
- Un autre exemple : générateur de progression arithmétique
- Fonctions générateurs dans la bibliothèque standard
- Fonctions de réduction des itérables
- Observer de plus près la fonction iter
- Étude de cas : générateurs dans un utilitaire de conversion de base de données
- Les générateurs comme coroutines
- Résumé du chapitre
- Lectures complémentaires
- CHAPITRE 15. Gestionnaires de contexte et autres blocs
-
CHAPITRE 16. Coroutines
- Comment les coroutines ont évolué à partir des générateurs
- Comportement de base d’un générateur utilisé comme coroutine
- Exemple de coroutine pour calculer une moyenne mobile
- Décorateurs pour amorcer les coroutines
- Terminer une coroutine et gérer les exceptions
- Retourner une valeur à partir d’une coroutine
- Utiliser yield from
- La signification de yield from
- Cas d’utilisation : des coroutines pour la simulation à événements discrets
- Résumé du chapitre
- Lectures complémentaires
- CHAPITRE 17. Programmation concurrente avec les futurs
- CHAPITRE 18. Concurrence avec asyncio
-
CHAPITRE 14. Itérables, itérateurs et générateurs
-
PARTIE VI. Métaprogrammation
-
CHAPITRE 19. Attributs et propriétés dynamiques
- Préparer des données avec des attributs dynamiques
- Utiliser une propriété pour valider des attributs
- Un regard approprié sur les propriétés
- Coder une factory de propriétés
- Gérer la suppression d’attributs
- Attributs et fonctions essentiels pour le traitement des attributs
- Résumé du chapitre
- Lectures complémentaires
- CHAPITRE 20. Descripteurs d’attributs
-
CHAPITRE 21. Métaprogrammation de classe
- Class factory !
- Un décorateur de classe pour personnaliser des descripteurs
- Que se passe-t-il et quand : importation versus exécution
- Métaclasses 101
- Une métaclasse pour personnaliser les descripteurs
- Les métaclasses et la méthode spéciale __prepare__
- Classes en tant qu’objets
- Résumé du chapitre
- Lectures complémentaires
-
CHAPITRE 19. Attributs et propriétés dynamiques
- Postface
-
ANNEXE A. Scripts de support
- Chapitre 3 : Test de performance de l’opérateur in
- Chapitre 3 : Comparaison des trames de bits de hachage
- Chapitre 9 : Utilisation de la RAM avec et sans __slots__
- Chapitre 14 : Script de conversion de base de données isis2json.py
- Chapitre 16 : Simulation d’événements d’une flotte de taxis
- Chapitre 17 : Exemples cryptographiques
- Chapitre 17 : Exemples de client http flags2
- Chapitre 19 : Scripts et tests de programmation OSCON
- Lexique Python
- Sommaire
Product information
- Title: Programmer avec Python
- Author(s):
- Release date: April 2019
- Publisher(s): Editions First
- ISBN: 9782412045145
You might also like
book
Apprendre à programmer avec Python 3
Présentation Un livre incontournable pour acquérir l'exigeante discipline qu'est l'art de la programmation ! Au sommaire …
book
Python précis et concis
Python est un langage de programmation "généraliste", multi plate-forme, orienté objet et open source. Il est …
book
Le Machine learning avec Python
Entrez de plain-pied dans le monde fascinant la data science Vous aussi participez à la révolution …
book
Programmer avec Java
Un best-seller US enfin traduit en France Ce livre est destiné à éléver l'expérience de tout …