7.5. Classes et objets en Python : méthodes spéciales
Page 41 | Écouter en audio
7.5 Classes et objets en Python : méthodes spéciales
Dans le langage Python, tout est objet, y compris les types de données primitifs. Les classes fournissent un moyen de regrouper les données et les fonctionnalités. Lors de la création d'une nouvelle classe, nous créons un nouveau type d'objet, permettant de créer de nouvelles instances de ce type. Chaque instance de classe peut avoir des attributs qui lui sont attachés pour conserver son état. Les instances de classe peuvent également avoir des méthodes (définies par leur classe) pour modifier leur état.
Les méthodes spéciales sont une fonctionnalité clé de Python, vous permettant de créer des classes qui se comportent comme des types de données intégrés. Cela signifie que vous pouvez utiliser des méthodes spéciales pour surcharger les opérateurs et fonctions standard afin qu'ils fonctionnent avec vos classes personnalisées. Ces méthodes spéciales sont toujours entourées de doubles traits de soulignement (__) et sont connues sous le nom de « méthodes dunder ».
Méthode __init__
La méthode __init__ est une méthode spéciale qui est appelée automatiquement lorsqu'un objet est créé à partir d'une classe. Cette méthode est généralement utilisée pour effectuer toute initialisation nécessaire. Voici un exemple :
classe MaClasse : def __init__(soi) : self.data = []
Dans cet exemple, la méthode __init__ est utilisée pour initialiser l'attribut data pour chaque nouvelle instance de la classe MyClass.
Méthodes __str__ et __repr__
Les méthodes __str__ et __repr__ sont utilisées pour fournir des représentations sous forme de chaîne d'un objet. La méthode __str__ est appelée par la fonction str(obj) et la fonction print pour convertir l'objet en chaîne. La méthode __repr__ est utilisée pour fournir une représentation sous forme de chaîne qui peut être utilisée pour recréer l'objet à l'aide de la fonction eval().
classe MaClasse : def __init__(soi, nom) : soi.nom = nom def __str__(soi) : retourner f'MaClasse({self.name})' def __repr__(soi) : retourner f'MaClasse({self.name})'
Méthodes __eq__ et __ne__
Les méthodes __eq__ et __ne__ sont utilisées pour surcharger les opérateurs d'égalité et d'inégalité. La méthode __eq__ est appelée lorsque deux objets sont comparés à l'aide de l'opérateur d'égalité (==). La méthode __ne__ est appelée lorsque l'opérateur d'inégalité (!=) est utilisé.
classe MaClasse : def __init__(soi, nom) : soi.nom = nom def __eq__(soi, autre) : si isinstance (autre, MyClass): retourner soi.nom == autre.nom retourner Faux def __ne__(soi, autre) : revenir pas soi.__eq__(autre)
Méthodes d'opérateurs arithmétiques
Il existe plusieurs méthodes spéciales qui peuvent être utilisées pour surcharger les opérateurs arithmétiques, notamment __add__, __sub__, __mul__, __truediv__ et bien d'autres. Chacune de ces méthodes est appelée lorsque l'opérateur correspondant est utilisé sur les objets de la classe.
Par exemple, voici comment surcharger l'opérateur d'addition pour une classe qui représente un tableau mathématique :
vecteur de classe : def __init__(soi, x, y) : soi.x = x soi.y = y def __add__(soi, autre) : si isinstance (autre, vecteur): retourner le vecteur (self.x + autre.x, soi.y + autre.y) autre: raise TypeError('Les vecteurs ne peuvent être ajoutés qu'à d'autres vecteurs.')
Ceci n'est qu'une introduction aux méthodes spéciales de Python. Il existe de nombreuses autres méthodes spéciales disponibles qui vous permettent de personnaliser le comportement de vos classes de manière puissante et flexible.
Répondez maintenant à l’exercice sur le contenu :
_Laquelle des méthodes spéciales suivantes est appelée automatiquement lorsqu'un objet est créé à partir d'une classe Python ?
Tu as raison! Félicitations, passez maintenant à la page suivante
Vous avez raté! Essayer à nouveau.
Page suivante de lebook gratuit :