Cursus
Formation PYTHON Programmation Orientée Objet
Objectifs
Définir les bases et conventions Python.
Expérimenter la programmation orientée objet en Python.
Gérer les exceptions de manière structurée.
Explorer les aspects avancés de POO en Python.
Appliquer les bonnes pratiques de développement.
Etablir la persistance d'objet en Python.
Utiliser des design patterns en Python.
Pré-requis
Participants
Programme de formation
INTRODUCTION ET RAPPELS PYTHON
Python, un langage polyvalent
Python 2 vs Python 3
La PEP 8 et les conventions de codage Python
Les types de base
- int
- float
- str
- bool
Les principales collections
- list
- tuple
- set
- dict
INTRODUCTION A LA PROGRAMMATION ORIENTEE OBJET EN PYTHON
Pourquoi programmer de manière orientée objet ?
- Concept d'encapsulation
- Concept d'héritage
Mise en œuvre de classes
- Définition et instanciation d'une classe
- Définition d'attributs de classe
- Définition de méthodes de classe
- Constructeurs et destructeurs
- Mise en œuvre de propriétés
- Redéfinition d'opérateurs
Mise en œuvre de l'héritage
- Surcharge vs redéfinition
- Notion de polymorphisme
- L'héritage multiple en Python
GESTION STRUCTUREE DES EXCEPTIONS
Comment fonctionne la gestion des exceptions en Python ?
La hiérarchie de classes d'exceptions
L'instruction try/except/finally
L'instruction raise
Définir ses propres classes d'exception
ASPECT AVANCE DE PROGRAMMATION ORIENTEE OBJET EN PYTHON
Coder une classe "itérable" en Python
- Le pattern _iter_/_next_
- Utilisation de vos objets via l'instruction for
- Comparaison entre itérateurs et générateurs Python
Définition d'un ContextManager
- Le pattern _enter_/_exit_
- Utilisation de vos objets via l'instruction with
- ContextManager et gestion des exceptions
Gestion des types abstraits via le module "abc"
- Qu'est-ce qu'un type abstrait ?
- Difficultés inhérentes au langage Python
La réflexion en Python
- Qu'est-ce que la réflexion en programmation Orientée Objet ?
- Mise en œuvre de la réflexion
Développement de décorateur Python
- Qu'est-ce qu'un décorateur Python ?
- Mise en œuvre de la réflexion
BONNES PRATIQUES DE DEVELOPPEMENT
Documenter son code et ses classes avec les docstrings
Mise en œuvre de tests DocTest
Mise en œuvre de procédure de tests unitaires avec UnitTest
Intégration de l'outil UnitTest avec votre IDE
Le TDD (Test Driven Development)
PERSISTENCE D'OBJET EN PYTHON
Persistance d'objets en JSON
- Présentation d'un module JSON
- Persistance de données Python en JSON
- Persistance de l'état d'un objet
- Rechargement d'objet à partir d'un flux JSON
Persistance d'objets en base de données via SqlAlchemy
- Qu'est-ce qu'un ORM (Object Relational Mapping) ?
- Définir les données du mapping
- Manipulation CRUD de vos données
- Mapping des relations entre tables
- Le chargement paresseux (Lazy Loading)
MISE EN ŒUVRE DE DESIGN PATTERNS (PATRONS DE CONCEPTION) EN PYTHON
Qu'est-ce qu'un design pattern ?
Quelles sont les spécificités Python quant à la mise en œuvre de design patterns ?
Les différentes catégories de design patterns
Quelques patterns de création (Creational Pattern)
- Le design pattern Singleton
- Le design pattern Factory Method
- Le design pattern Abstract Factory
- Le design pattern Builder
Quelques patterns structuraux (Structural Design Pattern)
- Le design pattern Composite
- Le desing pattern Proxy
- Le design pattern Decorator
- Le design pattern Flyweight
Quelques patterns comportementaux (Behavioral Patterns)
- Le pattern Interpretor
- Le pattern Iterator
- Le pattern Chain of Responsability
- Le pattern Observer