Python est simple.
C’est probablement ce que l’on vous a dit de nombreuses fois, et ce que vous avez constaté en apprenant et pratiquant ce langage. Mais derrière cette simplicité apparente existent un certain nombre de concepts plus complexes qui forment la puissance de ce langage.
En Python, on s’intéresse plus au comportement des objets qu’à leur nature. Ainsi, l’interface des objets (c’est-à-dire l’ensemble de leurs attributs et méthodes) est quelque chose de très important, c’est entre autres ce qui les définit.
En effet, une grande partie des outils du langage sont génériques — tels les appels de fonctions ou les boucles for
— c’est-à-dire qu’ils peuvent s’appliquer à des types différents.
Python demande simplement à ces types de respecter une interface en implémentant un certain nombre de méthodes spéciales.
Ces interfaces et méthodes seront décrites dans le cours.
Le pré-requis pour suivre ce tutoriel est de connaître Python, même à un niveau intermédiaire. Il est simplement nécessaire de savoir manipuler les structures du langage (conditions, boucles, fonctions), les types de base (nombres, chaînes de caractères, listes, dictionnaires), et d’avoir des notions de programmation objet en Python. Connaître le mécanisme des exceptions est un plus.
Ce cours se divise en chapitres consacrés chacun à une spécificité du langage. Ces dernières ne devraient plus avoir de secret pour vous une fois la lecture terminée.
Je tiens aussi à préciser que ce cours s’adresse principalement aux utilisateurs de Python 3, et n’est pas valable pour les versions de Python inférieures.
Mise en bouche
Ainsi font fonctions
Plus loin, un peu plus loin
La rentrée des classes
Pour quelques exercices de plus
Ce cours touche maintenant à sa fin. Puisse-t-il vous avoir fait découvrir de nouveaux concepts du Python, ou l’envie de voir encore plus loin.
Ce cours ne couvre en effet qu’un nombre restreint de domaines, qui pourraient chacun être plus approfondis. Il y aurait encore tant à dire, sur les coroutines, sur les utilisations de l’interpréteur, sur les outils, les bibliothèques, les frameworks. À elle seule, la bibliothèque standard regorge encore de nombreuses choses, et je vous invite à voguer dans les pages de sa documentation.
Nous nous sommes ici surtout intéressés aux pages de documentation sur les types et le modèle de données. Mais elle comporte bien d’autres sections comme des tutoriaux, des recettes, la description de l’API C, etc.
Cependant, bien que cette documentation soit assez complète, elle ne l’est pas autant que le code source de l’interpréteur CPython. Écrit en C, son code reste très accessible et permet de mieux comprendre les mécanismes internes du langage.
Si vous souhaitez en apprendre plus sur la philosophie du langage, ou sur la bonne utilisation des concepts décrits dans le cours, je vous renvoie à cet article sur le code pythonique.
Je tiens aussi à remercier les différents contributeurs ayant aidé à l’élaboration de ce projet :
- Vayel, pour ses longues et intensives relectures ;
- nohar, pour les précisions apportées tout le long de l’écriture du tutoriel ;
- Bibibye, pour les nombreuses typographies corrigées ;
- yoch, pour ses diverses corrections.
Notez enfin que ce cours est diffusé sous licence Creative Commons Attribution-ShareAlike 4.0 et que toute contribution est bienvenue. Les sources sont disponibles à l’adresse suivante : https://github.com/entwanne/cours_python_avance