les documents relatifs au langage Python

contenus de la page

Les ateliers Python comportent des textes de niveaux fort différents : les premiers textes portaient sur les bases de la programation en Python et sur la programmation par objets.
Au cours des travaux ultérieurs, nous avons été amenés à creuser quelques particularités liées de l'implémentation de Python : les métaclasses, la programmation fonctionnelle et les descripteurs. Ces derniers textes sont assez techniques. La documentation du module sqlite3 a été traduite et elle est disponible dans la page. Pour Tkinter et les expressions régulières, voir les pages spécifiques qui leur sont consacrées.

initiation au langage Python

Le document relatif à l'initiation à Python est un outil de travail. Ce n'est pas un tutoriel, tout au plus un aide mémoire pour l'animateur de l'atelier.
Nous nous somme attachés à bien comprendre le fontionnement de Python en ce qui concerne la notion de variable, d'alias et de mémorisation de données. Cela nous a conduit à utiliser une symbolique originale, qui permet d'expliquer le jeu des pointeurs de mémoire et le ramasse miette. Un exemple des schémas utilisé a été repris ci-dessous en guise d'illustration.

téléchargements

 format LibreOffice (4,4 Mio)  format P.D.F. (3,8 Mio)

Classes et Métaclasses en Python

Python appartient à la catégories des langages objets avec classes, comme Java ou C++. En Python toute donnée est un objet, et chaque objet est l'instance d'une classe ; cette disposition était déjà celle de Smalltalk.
La conséquence de ceci est que toute classe, en tant qu'objet Python, est aussi une instance : celle d'une classe particulière dont les instances sont elles-mêmes des classes. Une telle classe est appelée une métaclasse. Les métaclasses prennent tout leur intérêt dans la création de nouvelles classes (déclaration Class ...) et dans l'instanciation de ces classes définies par l'utilisateur.

téléchargements

 dossier au format LibreOffice (99,5 Kio)  dossier au format P.D.F. (253,3 Kio)  les exemples au format Z.I.P. (15,2 Kio)

le procole descripteur

Comment python procède-t-il pour retrouver l'attribut d'une instance ? Un attribut d'instance étant donné, comment lui affecter une valeur, voire le supprimer  ?
Le procédé est moins évident qu'il n'y paraît. S'il est facilement envisagable lorsque l'attribut a été défini dans l'instance qui l'utilise, qu'en est-il de la recherche de l'attribut lorsque cela n'est pas le cas ? Et quel est le mécanisme mis en route lors d'une affectation, suivant que l'attribut existe dans l'instance ou non  ?
Par ailleurs, peut-on maîtriser la recherche ou l'affectation et redéfinir le protocole par défaut ?
Trois méthodes, __get__, __set__ et __delete__ permettent de contrôler la recherche, l'affectation ou la suppression de l'attribut d'une instance. Les attributs qui disposent de l'une de ces trois méthodees sont des contrôleurs. Le document présente et illustre la notion de contrôleur. Il est largement inspiré du Howto de Python.

téléchargements

 dossier au format LibreOffice (82,9 Kio)  dossier au format P.D.F. (195,5 Mio)  les exemples au format Z.I.P. (5,3 Kio)

pogrammation fonctionnelle en Python

Python est en général présenté comme un langage de programmation par objets. On oublie qu'il développe également les paradigmes de la programmation fonctionnelle.

Le document est une adaptation libre du document officiel en anglais. IL comporte une première partie consacrée aux principes et apports de la programmation fonctionnelle.
La seconde partie est consacrée aux outils mis à disposition par Python pour pouvoir programmer selon ses propres paradigmes.
Au coeur de leur implémention en Python, il y a les notions d'itérateur et de générateur. Le document aborde les trois modules où ces concepts sont développés : itertools, functools et generator.

téléchargements

 dossier au format LibreOffice (59,4 Kio)  dossier au format P.D.F. (200,2 Kio)

la base de données SQLITE3

Le document est une adaptation libre en français de la doc de l'API sqlite3 de Python3. Le gestionnaire de base de données sqlite existe indépendamment de Python. Ce gestionnaire est largement utilisée, par exemple dans les navigateurs (Firefox, Chrome).
Le document actuel est consacré à l'interface qui existe entre Python et le gestionnaire. Cette API se présente sous forme d'un module Python, et celui-ci lui a consacré une doc officielle.
Nous avons ajouté un texte sur les équivalences entre les strutures de données reconnues par la base et les structures équivalentes en Python.

téléchargements

 dossier au format LibreOffice (59,9 Kio)  dossier au format P.D.F. (386,6 Kio)