Pratique Python, IA Engineering et bien plus avec des exercices interactifs et des tests automatiques.
Par défaut, json.dumps() sait serialiser les types de base Python (dict, list, str, int, float, bool, None). Mais si tu lui passes un objet custom, …
Les dataclasses sont un raccourci Python pour créer des classes qui stockent des données. Au lieu d'écrire __init__, __repr__, __eq__ a la main, le decorateur …
En Python, chaque objet possede un dictionnaire interne appele __dict__ qui contient tous ses attributs d'instance. C'est comme un carnet ou Python note tout ce …
En Python, tu peux ajouter des attributs a un objet apres sa création. C'est la nature dynamique du langage. Tu n'es pas oblige de tout …
Python fournit trois fonctions pour manipuler les attributs d'un objet de maniere programmatique : hasattr(obj, nom) : renvoie True si l'objet possede un attribut avec …
En Python, certaines valeurs sont considerees comme "fausses" (falsy) quand on les utilise dans une condition. Ce sont : False, 0, 0.0, la chaine vide …
En Python, les fonctions sont des objets comme les autres. Tu peux les assigner a des variables, les passer en argument, etc. Mais il y …
C'est probablement le piege le plus celebre de Python. Quand tu donnes une valeur par défaut mutable (comme une liste) a un paramètre de fonction, …
En Python, quand tu assignes une valeur a une variable dans une fonction, Python considere cette variable comme locale a la fonction. Ca veut dire …
Le monkey patching, c'est modifier une classe ou un module apres sa création, en lui ajoutant ou remplacant des méthodes ou des attributs. Le terme …
Quand tu accedes a un attribut d'un objet (par exemple obj.nom), Python suit un processus precis. Il cherche d'abord dans l'instance, puis dans la classe, …
La méthode __sétattr__ est appelee A CHAQUE FOIS qu'on assigne un attribut a un objet, y compris dans __init__. C'est donc plus puissant (et plus …
Un context manager, c'est un objet qui definit un contexte d'execution. Tu l'utilises avec le mot-cle with. L'exemple le plus courant est l'ouverture de fichier …
Écrire une classe avec __enter__ et __exit__ peut etre un peu lourd pour des cas simples. Python propose un raccourci avec le decorateur contextmanager du …
Le decorateur @property permet de definir des attributs calcules. L'avantage, c'est que du point de vue de l'utilisateur, ca ressemble a un simple attribut, mais …
Maintenant qu'on connait __sétattr__, on peut l'utiliser pour des choses plus interessantes que bloquer des modifications. Par exemple, garder un historique de toutes les modifications …
Un pattern courant en programmation, c'est le Proxy : un objet qui se comporte comme un autre objet, mais qui ajoute un comportement supplémentaire (logging, …
Python te permet de faire en sorte que tes propres classes se comportent comme des types natifs (listes, dictionnaires...) en implementant des méthodes speciales. Pour …
En combinant __sétattr__ et un système de declaration de types, on peut créer des classes qui valident automatiquement les types des attributs a l'assignation. C'est …
Pour terminer cette serie, on va combiner plusieurs techniques avancees dans un cas realiste. Imagine que tu construis un système de configuration ou de registre …
En entreprise, un code sans tests c'est une bombe a retardement. Tu modifies une fonction un vendredi soir, et lundi matin toute l'appli est cassee. …
Sur un vrai projet, tu vas avoir des centaines de tests. Si tu les mets tous en vrac dans un script, ca devient vite illisible. …
Les bugs qui arrivent en production, ce ne sont presque jamais les cas normaux. C'est toujours la liste vide que personne n'a testee, le nombre …
Un code qui echoue silencieusement au lieu de lever une erreur, c'est un cauchemar a debugger. Si ta fonction diviser(a, b) retourne 0 au lieu …