Python : fondamentaux de la POO
59 cards · 🇺🇸 English → 🇫🇷 Français
Classes, héritage et concepts fondamentaux de la programmation orientée objet en Python.
Study all 59 cards for free
Flashcards, quizzes, pixel-art games and a daily review that remembers for you.
Try the first 10 cards
1 / 10Class in Python
Tap the card for the answer · swipe right if you knew it, left if not
Already have an account? Sign in
Cards
- 1Class in PythonUn modèle pour créer des objets, qui regroupe des données (attributs) et des fonctionnalités (méthodes). Défini avec le mot-clé 'class'.
- 2Define a classclass ClassName: def __init__(self, param): self.attribute = param
- 3InstanceUn objet créé à partir d'une classe. Chaque instance possède ses propres données mais partage les méthodes avec les autres instances de la même classe.
- 4SelfRéférence à l'instance courante. Premier paramètre des méthodes d'instance. Permet d'accéder aux attributs et aux méthodes. C'est une convention, pas un mot-clé.
- 5__init__Méthode constructeur appelée lors de la création d'une nouvelle instance. Initialise les attributs d'instance. Exemple : def __init__(self, name): self.name = name
- 6Instance attributesVariables propres à chaque instance. Définies dans __init__ ou d'autres méthodes. Accessibles via self.attribute_name.
- 7Class attributesVariables partagées par toutes les instances d'une classe. Définies directement dans le corps de la classe, pas dans les méthodes. Exemple : class Dog: species = 'Canis familiaris'
- 8instance vs class attributesLes attributs d'instance sont propres à chaque instance (self.attr). Les attributs de classe sont partagés par toutes les instances (ClassName.attr). La recherche d'attribut vérifie d'abord l'instance, puis la classe.
- 9Instance methodsFonctions définies dans une classe qui opèrent sur les données d'instance. Prennent self comme premier paramètre. Exemple : def bark(self): return f'{self.name} says woof!'
- 10Class methodsMéthodes qui opèrent sur la classe elle-même, et non sur les instances. Décorées avec @classmethod. Prennent cls comme premier paramètre. Exemple : @classmethod def from_string(cls, string):
- 11Static methodsMéthodes qui n'accèdent ni à l'instance ni à la classe. Décorées avec @staticmethod. Aucun paramètre self/cls. Fonctions utilitaires regroupées avec la classe.
- 12InheritanceMécanisme permettant à une classe d'hériter des attributs et méthodes d'une autre classe. La classe enfant étend la classe parente. Syntaxe : class Child(Parent):
- 13Method overridingLa classe enfant redéfinit une méthode de la classe parente. Lorsqu'elle est appelée sur une instance enfant, c'est la version de l'enfant qui s'exécute. On peut appeler la version parente avec super().
- 14Super()Fonction intégrée permettant d'appeler les méthodes de la classe parente. Courant dans __init__ : super().__init__(args). Gère correctement l'héritage multiple.
- 15Multiple inheritanceUne classe hérite de plusieurs parents. Syntaxe : class Child(Parent1, Parent2). La résolution des méthodes suit le MRO (Method Resolution Order).
- 16MRO (Method Resolution Order)Ordre dans lequel Python recherche les méthodes dans la hiérarchie d'héritage. Consultable avec ClassName.mro() ou ClassName.__mro__. Utilise la linéarisation C3.
- 17PolymorphismDes classes différentes peuvent être utilisées via une même interface. Des objets de classes différentes répondent différemment au même appel de méthode. En Python, cela passe par le duck typing.
- 18EncapsulationRegrouper données et méthodes au sein d'une classe. Contrôler l'accès à l'état interne. Utilise les propriétés et les attributs privés.
- 19Private attributes in PythonPar convention, préfixés par un underscore : _private ou __private. __name déclenche le name mangling (_ClassName__name). Ce n'est pas réellement privé, c'est juste une convention.
- 20Name mangling__attribute devient _ClassName__attribute. Aide à éviter les conflits de noms en cas d'héritage. Ce n'est pas un mécanisme de sécurité, juste une convention.
- 21@propertyDécorateur qui rend une méthode accessible comme un attribut. Permet une logique getter/setter tout en conservant la syntaxe d'attribut. Exemple : @property def name(self): return self._name
- 22Create a setter with @property@property pour le getter, puis @attribute.setter pour le setter. Exemple : @property def name(self): return self._name @name.setter def name(self, value): self._name = value
- 23__str__Méthode magique définissant la représentation en chaîne destinée aux humains. Appelée par str() et print(). Exemple : def __str__(self): return f'{self.name}'
- 24__repr__Méthode magique définissant la représentation en chaîne destinée aux développeurs. Doit être non ambiguë, idéalement du code Python valide. Appelée par repr(). Sert de repli pour __str__.
- 25__str__ vs __repr____str__ : lisible pour les utilisateurs finaux. __repr__ : non ambiguë, destinée aux développeurs et au débogage. __repr__ sert de repli si __str__ est absent.
- 26__len__Définit le comportement de len(). Exemple : def __len__(self): return len(self.items)
- 27__getitem__Permet l'indexation/le découpage (slicing) : obj[key]. Exemple : def __getitem__(self, index): return self.items[index]
- 28__setitem__Permet l'affectation d'éléments : obj[key] = value. Exemple : def __setitem__(self, key, value): self.items[key] = value
- 29__eq__Définit la comparaison d'égalité avec ==. Exemple : def __eq__(self, other): return self.id == other.id
- 30Comparison magic methods__eq__ (==), __ne__ (!=), __lt__ (<), __le__ (<=), __gt__ (>), __ge__ (>=). Définissent comment les objets sont comparés.
And 29 more cards. Study the whole deck free
Articles about this deck
More Programming decks
See all- 🐍
Python: OOP Fundamentals
59 cards · 🇺🇸 English
Classes, inheritance, and core object-oriented Python concepts.
- 🐍
Python : avancé (décorateurs, lambda et exceptions)
97 cards · 🇺🇸 English
Décorateurs, fonctions lambda, gestion des exceptions et autres concepts Python avancés.
- 🐍
Python : structures de données et compréhensions
125 cards · 🇺🇸 English
Méthodes de listes/dictionnaires/ensembles ainsi que les compréhensions de listes, de dictionnaires et de générateurs.
- 🐍
Python: Fortgeschritten (Decorators, Lambda & Exceptions)
97 cards · 🇺🇸 English
Decorators, Lambda-Funktionen, Exception-Handling und weitere fortgeschrittene Python-Konzepte.
- 🐍
Python: Funciones integradas
77 cards · 🇺🇸 English
Funciones integradas esenciales que todo desarrollador Python debería conocer.
- 🐍
Python: Fundamentos de POO
59 cards · 🇺🇸 English
Clases, herencia y conceptos fundamentales de la programación orientada a objetos en Python.
