11.6 Résumé du chapitre
Les points clés de ce chapitre sont les suivants :
- La programmation orientée objet consiste à regrouper des champs et des procédures associés au sein d'objets à l'aide de l'abstraction de données et de l'encapsulation.
- Les classes définissent un type d'objet comportant des attributs et des méthodes.
- Les instances d'un type de classe représentent des objets et sont créées à l'aide de
__init__(). - Les attributs peuvent appartenir à l'instance (uniques pour chaque instance) ou à la classe (partagés par toutes les instances).
- Les méthodes d'instance ont pour premier paramètre
selfafin d'accéder à l'instance spécifique. - Python utilise des méthodes magiques pour effectuer des actions en arrière-plan pour l'utilisateur. Les méthodes magiques commencent et se terminent toujours par un double trait de soulignement.
- Python permet la surcharge des opérateurs existants pour les classes définies par l'utilisateur.
- Les classes peuvent être importées depuis des modules par leur nom ou être renommées à l'aide d'alias.
À ce stade, vous devriez être capable d'écrire des classes comportant des attributs d'instance, des attributs de classe et des méthodes, et d'importer des classes à partir de modules. Vous devriez également être en mesure de surcharger des opérateurs lors de la définition d'une classe.
| Construction | Description |
|---|---|
| Définition de classe |
class ClassName:
"""Docstring"""
|
__init__() |
class ClassName:
def __init__(self):
# Initialize attributes |
| Attributs |
class ClassName:
class_attr_1 = [value]
class_attr_2 = [value]
def __init__(self):
instance_attr_1 = [value]
instance_attr_2 = [value]
instance_attr_3 = [value] |
| Méthodes (d'instance) |
class ClassName:
def __init__(self):
instance_attr_1 = [value]
instance_attr_2 = [value]
instance_attr_3 = [value]
def method_1(self, val1, val2):
# Access/change attributes
def method_2(self):
# Access/change attributes |
| Instances | instance_1 = ClassName() instance_1.instance_attr_1 = [new value] instance_2 = ClassName() instance_2.method_2() |
| Opérateur de multiplication surchargé |
class ClassName:
# Other methods
def __mul__(self, other):
return ClassName(self.instance_attr_3 * other.instance_attr_3) |
| Importer une classe depuis un module avec un alias |
from class_module import ClassName as ClassAlias |
Tableau
11.4
Référence du chapitre 11.