icon_python.png

Programmation avancée Python

PYTHON-AVANCE4 days

Objectives

Python est un langage puissant, orienté objet, convenant parfaitement à la majorité des travaux de développement d'applications et d'interfaces graphiques. Se servir de Python pour développer des services Web, des sites dynamiques connectés à des bases de données, des applications manipulant des données XML ou des logiciels fédérant différentes applications existantes est en effet l'une des meilleures solutions disponibles actuellement, à la fois en termes de performances et d'efficacité. La grande flexibilité de Python provient pour partie de la richesse de sa bibliothèque standard et de sa facilité d'intégration avec d'autres langages et bibliothèques. Il est, par ailleurs, disponible sur la plupart des plateformes du marché (Windows®, MacOS®, Unix, Linux) et offre une excellente portabilité aux applications.
La formation proposée ici se déroule sur quatre jours et s'adresse à des personnes ayant une expérience préalable de la programmation en Python, et désireuses d'approfondir leur connaissance du langage et de sa bibliothèque standard. Le cours aborde les fonctionnalités les plus poussées du langage (générateurs, descripteurs, etc.), ainsi que des solutions en Python à des problèmes d'informatique avancée (communication, multifils (multi-threads), persistance). Enfin, des schémas standards de conception orientée objet sont présentés, ainsi que leur réalisation en Python.
La formation comporte une large part de travaux pratiques permettant de mettre en œuvre immédiatement les concepts ayant été vus dans le cadre du cours.


Audience

Ce cours s'adresse aux personnes souhaitant approfondir leur connaissance du langage Python. Il met particulièrement l'accent sur la structuration du code en vue d'une réutilisabilité maximale.


Prerequisites

Expérience pratique et régulière de la programmation en Python (3 mois minimum), solides connaissances de la programmation objet.


program

Les structures avancées de Python

  • Décorateurs et gestionnaires de contexte

    principe, utilisation et écritures de décorateurs / context-managers (with).
  • Générateurs et itérateurs dans Python

    définition et utilisation de générateurs, générateurs et micro-fils (microthreads), module itertools.
  • Propriétés avancés du modèle objet de Python

    introspection et utilisation dynamique, unification type / classe, propriétés et accesseurs, slots.
  • Et plus

    aperçu des modules abc, collections, functools.

La communication avec Python

  • Présentation de la communication réseau

    modèle ISO, TCP/IP, sockets, ports.
  • Objets distribués en Python

    présentation des possibilités (socket, Zero MQ, PyRO, XML-RPC, SOAP), comparaison des performances et des fonctionnalités, critères de choix.
  • Programmation réseau avec la bibliothèque standard Python

    module socket, module asyncore, module socketserver.

Programmation parallèle

  • Présentation

    principes de base, utilité, mise en œuvre.
  • Programmation multi-fils (multi-threads) avec la bibliothèque standard Python

    module threading, pièges à éviter.
  • Programmation multiprocessus avec la bibliothèque standard Python

    module multiprocessing

    Programmation avec asyncIO et coroutines

    async / await, coroutines et versions asynchrones des modules de la librairie standard

La persistance dans Python

  • Présentation de la persistance

    nécessité, enjeux, problématique.
  • Mettre en œuvre la persistance avec Python

    possibilités (pickle, shelve, base de données), comparaison des performances et des fonctionnalités, critères de choix.
  • La persistance avec la bibliothèque standard Python

    module pickle, module shelve.

Distribution et installation de code Python

  • Génération de documentation

    Sphynx
  • État des lieux des outils existants

    setuptools/easy_install, distribute/pip, virtualenv, buildout.
  • Packaging avec distutils

    .


Customization

Cette formation peut être adaptée afin d'aborder et d'approfondir des thèmes correspondant aux besoins des auditeurs. Logilab dispose aujourd'hui d'une palette très large de modules pédagogiques permettant la personnalisation de ses formations.
L'adaptation des cours en intra-entreprise ne pose aucun problème ; cette opération est cependant plus difficile pour les cours en inter-entreprises. N'hésitez pas à demander conseil à notre service commercial.


Terms

Des sessions en inter-entreprises sont organisées régulièrement dans nos locaux à Paris. Il est possible d'organiser, à votre demande, une ou plusieurs sessions en intra-entreprise (sur site) n'importe où en France ou en Europe.
Chaque participant à la formation dispose d'un exemplaire personnel du support de cours et du manuel d'exercices.

Durée

4 jours soit 28 heures.

Langue

Au choix, française ou anglaise

Intervenant

Tous les intervenants animant cette formation bénéficient de compétences pédagogiques reconnues. D'autre part, ils participent activement au développement du langage Python, de sa bibliothèque standard, et de ses futurs modules.

Travaux pratiques

Cette formation accorde une place prépondérante aux travaux pratiques qui permettent, tout au long du cours, de mettre en œuvre et assimiler les concepts théoriques.

Inter-entreprises

  • groupes de 3 personnes minimum et 8 personnes maximum
  • mardi-vendredi 9h-12h15, 13h30-17h00
  • Paris, Toulouse
  • déjeuner inclus

Intra-entreprise

  • groupes de 10 personnes maximum
  • 4 journées