Formation Python

Python : programmer en avancé

à distance

L’objectif de la formation est de présenter les nouveautés du langage Python ainsi que les concepts avancés de la programmation en Python. Cette formation vous permettra, en particulier, de découvrir les concepts de la programmation fonctionnelle et de la programmation asynchrone.

icon Contenu

Rappels sur la programmation orientée objet

  • Définition de classes et création d’objets
  • Encapsulation
    • Définition de membres privés et protégés
  • L’héritage en Python
    • Définition de l’héritage et conséquence
    • L’héritage multiple
  • Le polymorphisme
  • Classes et méthodes abstraites
    • Le module abc
  • Travaux pratiques : création d’une hiérarchie de classes incluant une classe abstraite et des méthodes abstraites

Concepts avancés de programmation orientée objet

  • La gestion des exceptions
    • Rappels sur les notions fondamentales
    • Hiérarchie des exceptions dans la bibliothèque standard
  • Améliorations sur la gestion des exceptions
    • Gestion de multiples exceptions
    • Gérer la sortie du bloc de capture : try… except… finally…
    • La structure with
    • Bonnes pratiques de conception des classes d’exceptions utilisateurs
  • Extension du système d’exception par les classes d’exceptions utilisateur
  • Les méthodes magiques
    • Les méthodes d’implémentation des comparateurs
    • Les méthodes d’implémentation des opérateurs mathématiques
    • Les méthodes de gestion du cycle de vie des objets
  • Travaux pratiques :
    • Création de classes d’exceptions utilisateur étendant le système d’exception avec la notion de code d’erreur
    • Implémentation de méthodes magiques dans une classe et utilisation dans une application

Les décorateurs

  • Principe de fonctionnement et usages
    • Lien avec le design-pattern
  • Définition des fonctions de décorations
    • Syntaxe
    • Gestion des paramètres
  • Application des décorateurs
    • Impact sur les éléments décorés
  • Les décorateurs standard du langage
  • Travaux pratiques :
    • Création d’un décorateur
    • Application à des fonctions pour modifier leur comportement

Les générateurs

  • Les itérateurs
    • Principes de fonctionnement
    • Création d’itérateurs personnalisés
  • Les itérateurs et les générateurs
    • Différences de fonctionnement
  • Implémentation de générateurs
    • Principes de construction
    • Le mot-clé yield
    • La fonction next()
  • Travaux pratiques :
    • Création d’un générateur automatique de nom de fichiers
    • Utilisation dans un programme Python de manipulation du système de fichiers

Les « context managers »

  • Le principe des « context managers »
    • Fonctionnement
    • Le mot-clé with
  • Déclaration de « context managers »
    • Structure de la classe
    • Les méthodes __enter__() et __exit__()
  • Les « context managers » sous forme de fonctions
    • Le module contextlib
  • « Context managers » et décorateurs
  • Travaux pratiques : création d’un « context manager » pour faciliter le parcours d’une arborescence

Programmation asynchrone

  • Utilité de la programmation asynchrone
    • Notion de thread et de sous-processus
    • Le mot-clé async
  • Le module thread et la classe associée
    • Modèle de programmation
    • Définition d’une tâche asynchrone et de son traitement
  • Le module asyncio
    • Modèle de programmation
    • Fonction de l’API
  • Travaux pratiques : implémentation d’un serveur réseau pouvant répondre à plusieurs demandes de clients simultanément

Les fonctions lambdas

  • Principes de base de la programmation fonctionnelle
    • Implémentation en Python
  • Définition de fonctions lambda
    • Déclaration
    • Limites de l’implémentation
  • Les décorateurs et les lambdas
    • Appliquer un décorateur sur une fonction lambda
  • Travaux pratiques : définition de fonctions lambdas pour simplifier l’écriture de fonctions

Interfaçage entre le langage Python et le langage C

  • Principes et finalités
  • Le module CType
  • Charger une librairie C dans Python
    • Invocation de fonction C depuis Python
  • Utilisation du profileur de code pour la mise au point
  • Travaux pratiques :
    • Création d’une bibliothèque de fonctions en langage C
    • Chargement de la bibliothèque C en Python
    • Appels de fonctions C depuis Python

Organisation des projets et distribution des applications

  • Principes de packaging et distribution
    • Les ressources nécessaires et les contraintes
    • Distribution d’applications Python
    • Distribution de librairies
  • Création de modules Python avec distutils
    • L’outil standard distutils
    • Le fichier setup.py
    • Installation de modules packagés avec distutils
  • Création, packaging et distribution d’application avec setuptools
    • Concepts de setuptools
    • Mise en œuvre
  • Travaux pratiques :
    • Packaging d’un projet de librairie Python avec distutils
    • Distribution de la librairie packagée
    • Packaging d’une application Python avec setuptools
    • Vérification de l’installation de l’application dans un environnement vierge

Création de documentation technique

  • Principes de base
    • Vers l’universalité d’une documentation d’API
  • Les différentes solutions techniques et leur couverture de fonctionnalités
    • Pydoc, Epydoc, Sphinx, etc.
  • Mise en œuvre dans une application complète
  • Travaux pratiques :
    • Ajout de commentaires de documentation dans un projet Python
    • Génération de la documentation avec Pydoc
    • Génération de la documentation avec Sphinx

icon Compétences visées

  • Mettre en œuvre tous les concepts de programmation orientée objet : héritage, polymorphisme, classes abstraites et interfaces
  • Intercepter et traiter des exceptions
  • Implémenter et invoquer des méthodes magiques
  • Mettre en œuvre les décorateurs et les générateurs de valeurs
  • Créer et mettre en œuvre des « context managers » personnalisés
  • Utiliser des bibliothèques de code écrites en C depuis vos modules
  • Mettre en œuvre la programmation multithreads
  • Utiliser les fonctions lambdas et la programmation fonctionnelle
  • Construire et déployer une librairie et une application Python

icon Méthodologie

Depuis votre domicile ou votre entreprise. Vous rejoignez un environnement de formation en ligne, à l’aide de votre ordinateur, tout en étant éloigné physiquement du formateur et des autres participants. Vous êtes en totale immersion avec le groupe et participez à la formation dans les mêmes conditions que le présentiel.

En début et en fin de formation, les stagiaires réalisent une auto-évaluation de leurs connaissances et compétences en lien avec les objectifs de la formation. L’écart entre les deux évaluations permet ainsi de mesurer leurs acquis.

icon Public & Prérequis

Cette formation s’adresse aux concepteurs/développeurs.

Prérequis : Avoir suivi la formation Programmer en Python, ou posséder les connaissances et compétences équivalentes.

icon Titre obtenu

Vous recevez une attestation de suivi de cours CPI Formations à la fin de cette formation.

Intervenant

Formateur informatique

Intervenant de la formation

Professionnel de l'informatique et de la pédagogie
Formateur informatique

Intervenant de la formation

Professionnel de l'informatique et de la pédagogie

La formation est animée par un professionnel de l’informatique et de la pédagogie, dont les compétences techniques, professionnelles et pédagogiques ont été validées par des certifications et/ou testées et approuvées par les éditeurs et/ou notre équipe pédagogique. Il est en veille technologique permanente et possède plusieurs années d’expérience sur les produits, technologies et méthodes enseignés. Il est présent auprès des stagiaires pendant toute la durée de la formation.

Prochaine session

icon 07/11/2022 – 09/11/2022
icon 09h00 – 17h30
icon À distance
icon CHF 2'390
inscriptions ouvertes
21 périodes de 60 minutes (3 jours de formations)
Demande d'inscription

Python : programmer en avancé

Questions et pré-inscription

Adrian vous conseille et répond à vos questions sur ce cours

026 305 27 81 link icon
adrian.chelmu@cpi.ch link icon