Résumé du chapitre

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 self afin 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.