Pratique Python, IA Engineering et bien plus avec des exercices interactifs et des tests automatiques.
Une classe, c'est un plan de construction pour créer des objets. Imagine que tu dessines le plan d'une maison : le plan decrit les pieces …
En programmation objet, on peut ajouter de la logique de validation dans les méthodes. Par exemple, un compte bancaire ne doit pas permettre de retirer …
En Python, quand tu fais print(mon_objet), Python appelle la méthode speciale __str__ de l'objet. Et quand tu tapes mon_objet dans la console interactive, c'est __repr__ …
Par défaut, deux objets Python ne sont egaux que s'ils sont le meme objet en mémoire. Pour comparer leur contenu, il faut definir __eq__ (egalite) …
Python te permet de definir ce que font les operateurs + et * sur tes propres objets. __add__ est appele quand tu ecris a + …
Python utilise des méthodes speciales pour les opérations courantes : __len__ est appelee par len(objet) __getitem__ est appelee par objet[index] __contains__ est appelee par élément …
Quand tu ecris for x in quelque_chose, Python appelle la méthode __iter__ de l'objet. Si cette méthode utilise yield, elle crée un générateur qui produit …
Une classe abstraite est un modèle qu'on ne peut pas instancier directement. Elle sert de contrat : elle dit "toute classe qui herite de moi …
Une property permet de controler l'acces a un attribut. C'est comme un vigile a l'entrée d'un batiment : chaque fois que quelqu'un entre ou sort, …
Une property calculée est un attribut qui n'est pas stocke directement mais recalcule a chaque acces. Si tu ne definis pas de setter, la property …
La vraie puissance des properties, c'est la validation. Le setter peut refuser une valeur invalide en levant une exception. Imagine que tu remplis un formulaire …
En Python, une classe peut heriter de plusieurs classes parentes en meme temps. C'est l'héritage multiple. Quand tu ecris class Canard(Volant, Nageant), le Canard herite …
Quand une classe herite d'une autre, son __init__ doit souvent appeler le __init__ du parent pour initialiser les attributs herites. C'est le role de super().__init__(). …
Un mixin est une classe concue pour etre heritee en complement d'une autre. Elle apporte une fonctionnalité transversale (comme le logging, la serialisation, etc.) sans …
Quand tu surcharges (override) une méthode dans une sous-classe, tu peux quand meme reutiliser la logique du parent avec super(). C'est comme une chaine de …
Un mixin tres utile en pratique, c'est celui qui permet de convertir un objet en dictionnaire ou en JSON. Ca sert partout : APIs, sauvegarde, …
En Python, quand tu créés une classe avec des attributs, tu dois écrire __init__, __repr__, __eq__... C'est beaucoup de code repetitif. Le decorateur @dataclass génère …
Dans une dataclass, tu peux donner des valeurs par défaut a certains champs. C'est comme les paramètres optionnels d'une fonction : ceux avec une valeur …
Parfois, tu as besoin de faire quelque chose juste apres la création de l'objet : valider les données, calculer un champ derive, enregistrer l'objet quelque …
Un Enum (enumeration) représente un ensemble fixe de valeurs possibles. C'est comme les jours de la semaine : il y en a exactement 7, ni …
En combinant dataclass et Enum, tu obtiens un typage fort : les champs ne peuvent prendre que des valeurs predefinies. C'est particulierement utile pour modeliser …
En Python, une classe est un modèle qui sert a créer des objets. Pense a une classe comme un moule a gateau : le moule …
Quand tu créés un objet, tu veux souvent lui donner des informations de depart. C'est le role de la méthode speciale __init__ (avec deux underscores …
Une fois qu'un objet est crée avec des attributs, tu peux y acceder avec la notation pointee : objet.attribut. Par exemple : class Personne: def …