Pratique Python, IA Engineering et bien plus avec des exercices interactifs et des tests automatiques.
Le Singleton est un design pattern qui garantit qu'une classe n'a qu'une seule instance dans tout le programme. C'est comme le president d'un pays : …
La Factory (usine) est un pattern qui centralise la création d'objets. Au lieu de créer directement tes objets avec Cercle(5) ou Rectangle(3, 4), tu passes …
L'Observer (ou publish/subscribe) est un pattern ou un objet (le Sujet) maintient une liste d'abonnes (les Observateurs) et les previent automatiquement quand quelque chose se …
Le pattern Strategy permet de changer d'algorithme a la volee, comme quand tu changes de vitesse en voiture. Le moteur tourne toujours, mais la vitesse …
Le pattern Decorator (a ne pas confondre avec les decorateurs Python avec @) est un pattern GoF qui permet d'enrichir un objet en l'enveloppant dans …
La composition est une relation forte entre deux objets : l'objet compose crée lui-meme ses composants. C'est comme un corps humain et son coeur : …
L'agregation est une relation faible entre objets : les composants existent independamment du tout. C'est comme une equipe de foot et ses joueurs : un …
Modelisons quelque chose de concret : une commande e-commerce. C'est un excellent exemple de composition car les lignes de commande n'ont aucun sens en dehors …
En Python, quand tu accedes a un attribut qui n'existe pas sur un objet, Python appelle la méthode speciale __gétattr__. C'est un filet de sécurité …
Le pattern Composite permet de traiter uniformement des objets individuels et des groupes d'objets. L'exemple classique, c'est un système de fichiers : un répertoire peut …
Le premier principe SOLID est le Single Responsibility Principle (SRP) : une classe ne doit avoir qu'une seule raison de changer. Autrement dit, elle ne …
Le principe Open/Closed dit qu'un code doit etre ouvert a l'extension mais ferme a la modification. En clair : tu peux ajouter de nouveaux comportements …
Le principe de substitution de Liskov dit qu'une sous-classe doit pouvoir remplacer sa classe parente partout ou celle-ci est utilisee, sans casser le programme. Exemple …
Le principe de segregation des interfaces (ISP) dit : ne force pas les classes a implémenter des méthodes qu'elles n'utilisent pas. Imagine une grosse interface …
Le dernier principe SOLID est l'inversion des dependances (DIP) : les modules de haut niveau ne doivent pas dependre des modules de bas niveau. Les …
Un context manager, c'est un objet qui sait se preparer et se nettoyer tout seul. Quand tu ecris with open('fichier.txt') as f, le fichier s'ouvre …
En Python, tout objet qui definit la méthode __call__ peut etre appele comme une fonction. On dit qu'il est callable. C'est comme un distributeur automatique …
En Python, pour mettre un objet dans un set ou l'utiliser comme clé de dictionnaire, il doit etre hashable. Cela veut dire qu'il doit avoir …
Le duck typing, c'est le principe de Python : si ca marche comme un canard et que ca fait coin-coin, c'est un canard. Autrement dit, …
En Python, les classes sont elles-memes des objets. Et elles sont créées par type(). Quand tu ecris class Animal: ..., Python appelle en fait type('Animal', …
__init_subclass__ est une méthode speciale appelee automatiquement quand une classe herite de ta classe. C'est un moyen leger de controler ce que les sous-classes ont …
Un decorateur de classe, c'est une fonction qui prend une classe en paramètre, la modifie, et la retourne. C'est comme un atelier de personnalisation : …
La serialisation, c'est transformer un objet Python en données transportables (un dictionnaire, du JSON, du XML...). La deserialisation, c'est l'inverse : reconstruire un objet depuis …
Quand tu as des objets qui contiennent d'autres objets (par exemple un Client qui a une Adresse), la serialisation devient un peu plus complexe. Chaque …