Catégorie dans Objet et classe Python

Héritage Python

L’héritage en Python permet à une classe de dériver de caractéristiques et de comportements d’une classe parente, ce qui peut être très utile pour réutiliser du code et organiser votre programme de manière logique. Voici un exemple de définition de classes en Python qui utilise l’héritage:

 

class Animal:
    def __init__(self, name, species):
        self.name = name
        self.species = species

    def make_sound(self):
        print("Some generic animal sound")

class Cat(Animal):
    def __init__(self, name, breed, toy):
        super().__init__(name, species="Cat")  # Appel de la méthode __init__ de la classe parente
        self.breed = breed
        self.toy = toy

    def make_sound(self):
        print("Meow")

class Dog(Animal):
    def __init__(self, name, breed):
        super().__init__(name, species="Dog")  # Appel de la méthode __init__ de la classe parente
        self.breed = breed

    def make_sound(self):
        print("

Dans cet exemple, la classe

Animal

est la classe parente et les classes

Cat

et

Dog

sont des classes enfants qui héritent de

Animal

. Les classes enfants peuvent avoir leurs propres méthodes et attributs, mais elles peuvent également utiliser les méthodes et attributs de la classe parente en utilisant la fonction

super

.

Surcharge d’opérateur Python

La surcharge d’opérateur est un concept de la programmation orientée objet qui permet de redéfinir le comportement des opérateurs pour une classe donnée. Cela permet de définir comment les objets de la classe doivent être comparés, additionnés, etc. en utilisant les opérateurs habituels tels que

==

,

+

,

*

, etc.

Voici un exemple simple de surcharge d’opérateur en Python:

 

class Vector:
  def __init__(self, x, y):
    self.x = x
    self.y = y

  def __add__(self, other):
    return Vector(self.x + other.x, self.y + other.y)

  def __mul__(self, other):
    return Vector(self.x * other, self.y * other)

  def __str__(self):
    return "Vector ({}, {})".format(self.x, self.y)

# Créer deux objets de la classe Vector
v1 = Vector(1, 2)
v2 = Vector(3, 4)

# Additionner les deux objets
v3 = v1 + v2
print(v3)  # Output: "Vector (4, 6)"

# Multiplier un objet par un scalaire
v4 = v3 * 2
print(v4)  # Output: "Vector (8, 12)"

# Comparer les deux objets
print(v3 == v4)  # Output: False

 

Héritage multiple Python

L’héritage multiple est un concept de la programmation orientée objet qui permet à une classe de dériver de plusieurs classes en même temps. Cela signifie qu’une classe peut hériter des propriétés et méthodes de plusieurs classes parentes et les utiliser dans sa propre définition.

Voici un exemple simple d’héritage multiple en Python:

 

class Animal:
  def __init__(self, name, species):
    self.name = name
    self.species = species

  def make_sound(self):
    print("Some generic animal sound")

class Swimming:
  def __init__(self, swim_speed):
    self.swim_speed = swim_speed

  def swim(self):
    print(f"Swimming at speed {self.swim_speed}")

class Fish(Animal, Swimming):
  def __init__(self, name, swim_speed):
    super().__init__(name, species="Fish")
    Swimming.__init__(self, swim_speed)

# Créer un objet de la classe Fish
fish1 = Fish("Nemo", "fast")

# Accéder aux propriétés de l'objet
print(fish1.name)  # Output: "Nemo"
print(fish1.species) # Output: "Fish"
print(fish1.swim_speed)  # Output: "fast"

# Appeler les méthodes de l'objet
fish1.make_sound()  # Output: "Some generic animal sound"
fish1.swim()  # Output: "Swimming at speed fast"

Dans cet exemple, la classe

Fish

hérite de la classe

Animal

et de la classe

Swimming

. Elle utilise le mot-clé

class

suivi du nom de la classe et des parenthèses pour déclarer la classe

Fish

. Dans les parenthèses, nous spécifions le nom des classes parentes, qui sont

Animal

et

Swimming

. La classe

Fish

hérite automatiquement toutes les propriétés et méthodes de la classe

Animal

et de la classe

Swimming

.

La classe

Fish

définit également sa propre méthode

__init__

, qui appelle les méthodes

__init__

de la classe

Animal

et de la classe

Swimming

en utilisant la fonction

super()

et en appelant la méthode directement. Cela permet de définir la propriété

species

de l’objet comme étant “Fish” et la propriété

swim_speed

en fonction de l’argument passé au constructeur.

Lorsque nous créons un objet de la classe

Fish

avec

fish1 = Fish("Nemo", "fast")

, nous pouvons accéder aux propriétés

name

,

species

et

swim_speed

de l’objet3.

Héritage Python

L’héritage est un concept de la programmation orientée objet qui permet à une classe de dériver de (ou d’hériter de) une autre classe. Lorsqu’une classe hérite d’une autre classe, elle peut utiliser toutes les propriétés et méthodes de la classe parente, ainsi que définir de nouvelles propriétés et méthodes ou redéfinir celles héritées.

Voici un exemple simple d’héritage en Python:

 

class Animal:
  def __init__(self, name, species):
    self.name = name
    self.species = species

  def make_sound(self):
    print("Some generic animal sound")

class Dog(Animal):
  def __init__(self, name, breed):
    super().__init__(name, species="Dog")
    self.breed = breed

  def make_sound(self):
    print("Woof!")

# Créer un objet de la classe Dog
dog1 = Dog("Fido", "Labrador")

# Accéder aux propriétés de l'objet
print(dog1.name)  # Output: "Fido"
print(dog1.species) # Output: "Dog"
print(dog1.breed)  # Output: "Labrador"

# Appeler les méthodes de l'objet
dog1.make_sound()  # Output: "Woof!"

Dans cet exemple, la classe

Dog

hérite de la classe

Animal

. Elle utilise le mot-clé

class

suivi du nom de la classe et des parenthèses pour déclarer la classe

Dog

. Dans les parenthèses, nous spécifions le nom de la classe parente, qui est

Animal

. La classe

Dog

hérite automatiquement toutes les propriétés et méthodes de la classe

Animal

.

La classe

Dog

définit également sa propre méthode

__init__

, qui appelle la méthode

__init__

de la classe parente en utilisant la fonction

super()

. Cela permet de définir la propriété

species

de l’objet comme étant “Dog”. La classe

Dog

définit également la propriété

breed

et redéfinit la méthode

make_sound

, qui imprime “Woof!” au lieu du message générique défini dans la classe parente.

Lorsque nous créons un objet de la classe

Dog

avec

dog1 = Dog("Fido", "Labrador")

, nous pouvons accéder aux propriétés

name

,

species

et

breed

de l’objet et appeler la méthode

make_sound

. La méthode

make_sound

de l’objet

dog1

est la méthode redéfinie de la classe

Dog

, qui imprime

Objet et classe Python

En Python, une classe est un modèle pour créer des objets. Elle définit les propriétés et les comportements que les objets créés à partir de cette classe auront. Un objet est une instance de la classe, c’est-à-dire un objet concret créé à partir de la classe.

Dans cet exemple, la classe Dog définit les propriétés name et breed, ainsi que la méthode bark. La méthode __init__ est un constructeur qui initialise les propriétés de l’objet lorsqu’il est créé. La méthode bark imprime simplement “Woof!” sur la sortie standard.

Pour créer un objet de la classe Dog, nous utilisons le mot-clé class suivi du nom de la classe et des parenthèses. Nous passons les arguments

"Fido"

et

"Labrador"

au constructeur lors de la création de l’objet. Nous pouvons ensuite accéder aux propriétés de l’objet en utilisant la syntaxe

objet.propriété

et appeler les méthodes de l’objet en utilisant la syntaxe

objet.méthode()

.

Dans l’exemple ci-dessus, l’objet dog1 a les propriétés name et breed et la méthode bark. Nous pouvons créer d’autres objets de la classe Dog en utilisant la même syntaxe et en passant différents arguments au constructeur. Chaque objet créé sera une instance unique de la classe Dog avec ses propres propriétés et comportements.

Voici un exemple simple de classe en Python:

 

class Dog:
  def __init__(self, name, breed):
    self.name = name
    self.breed = breed

  def bark(self):
    print("Woof!")

# Créer un objet de la classe Dog
dog1 = Dog("Fido", "Labrador")

# Accéder aux propriétés de l'objet
print(dog1.name)  # Output: "Fido"
print(dog1.breed) # Output: "Labrador"

# Appeler une méthode de l'objet
dog1.bark()  # Output: "Woof!"