Pratique Python, IA Engineering et bien plus avec des exercices interactifs et des tests automatiques.
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 …
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 …
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 …
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 …
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 …
Python a deux méthodes pour convertir un objet en chaine : __str__ et __repr__. La difference : - __str__ est pour l'affichage humain (utilisee par …
Jusqu'ici, on a vu des attributs d'instance (propres a chaque objet, definis avec self.attribut). Mais il existe aussi des attributs de classe : ils sont …
Une méthode statique est une fonction definie dans une classe mais qui n'a acces ni a l'instance (self) ni a la classe (cls). C'est juste …
Une méthode de classe est liee a la classe elle-meme, pas a une instance particuliere. Elle recoit cls (la classe) comme premier paramètre au lieu …
L'héritage permet a une classe de récupérer les attributs et méthodes d'une autre classe. On dit que la classe enfant herite de la classe parent. …
Quand une classe enfant a son propre __init__, elle doit appeler le __init__ du parent avec super().__init__(...). Sinon, les attributs du parent ne seront pas …
Quand une classe enfant definit une méthode qui existe deja dans la classe parente, on dit qu'elle la surcharge (override). L'enfant remplace le comportement du …
La fonction isinstance(objet, classe) te permet de vérifier si un objet est une instance d'une classe ou d'une de ses sous-classes. C'est different de type() …
Parfois, tu ne veux pas remplacer completement une méthode du parent, mais l'etendre : faire ce que fait le parent, puis ajouter quelque chose. Pour …
Un cas d'usage classique des attributs de classe, c'est compter combien d'instances ont ete créées. L'idee est simple : un compteur au niveau de la …
Une pile (stack en anglais), c'est comme une pile d'assiettes : tu ne peux ajouter ou retirer que l'élément du dessus. On appelle ca LIFO …
Maintenant que tu connais __add__ et __sub__, on va créer une classe plus complete. En plus d'additionner et soustraire des distances entre elles, on veut …