Description
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,...)
Objectifs
Comprendre les concepts de programmation orientée objet. Savoir coder une classe et mettre en ¿uvre le concept d'encapsulation. Savoir mettre en ¿uvre l'héritage en Python. Savoir coder un itérateur Python. Savoir mettre en ¿uvre des tests unitaires en Python. Savoir documenter une classe Python en utilisant les DocStrings. Savoir persister des objets en base de données.
Résultats
Certification