🐍

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.

Study this deck free

Try the first 10 cards

1 / 10
Question

Class in Python

Knew itLearning

Tap the card for the answer · swipe right if you knew it, left if not

Already have an account? Sign in

Cards

  1. 1Class in Python
    Un 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'.
  2. 2Define a class
    class ClassName: def __init__(self, param): self.attribute = param
  3. 3Instance
    Un 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.
  4. 4Self
    Ré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. 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
  6. 6Instance attributes
    Variables propres à chaque instance. Définies dans __init__ ou d'autres méthodes. Accessibles via self.attribute_name.
  7. 7Class attributes
    Variables 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'
  8. 8instance vs class attributes
    Les 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.
  9. 9Instance methods
    Fonctions 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!'
  10. 10Class methods
    Mé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):
  11. 11Static methods
    Mé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.
  12. 12Inheritance
    Mé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):
  13. 13Method overriding
    La 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().
  14. 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.
  15. 15Multiple inheritance
    Une classe hérite de plusieurs parents. Syntaxe : class Child(Parent1, Parent2). La résolution des méthodes suit le MRO (Method Resolution Order).
  16. 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.
  17. 17Polymorphism
    Des 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.
  18. 18Encapsulation
    Regrouper 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.
  19. 19Private attributes in Python
    Par 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.
  20. 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. 21@property
    Dé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
  22. 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. 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. 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. 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. 26__len__
    Définit le comportement de len(). Exemple : def __len__(self): return len(self.items)
  27. 27__getitem__
    Permet l'indexation/le découpage (slicing) : obj[key]. Exemple : def __getitem__(self, index): return self.items[index]
  28. 28__setitem__
    Permet l'affectation d'éléments : obj[key] = value. Exemple : def __setitem__(self, key, value): self.items[key] = value
  29. 29__eq__
    Définit la comparaison d'égalité avec ==. Exemple : def __eq__(self, other): return self.id == other.id
  30. 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
Study all 59 cards free