Tutoriel Python - Classe

Jinku Hu 30 janvier 2023
  1. Introduction à la POO
  2. Classes et objets Python
  3. Constructeurs de classes Python
  4. Supprimer les attributs de la classe
Tutoriel Python - Classe

Nous parlerons des bases de la programmation orientée objet (POO) en Python comme la classe, l’objet dans cette section.

Python est un langage de programmation orienté objet, en d’autres termes, tout en Python est un objet.

Introduction à la POO

Les bases de la Programmation Orientée Objet (POO) se composent des terminologies suivantes:

  1. Classes
  2. Membres des données
  3. Méthodes
  4. Objets
  5. Constructeurs
  6. Méthode Surcharge
  7. Surcharge de l’opérateur
  8. Héritage
  9. Instances de classe et instanciation

Classes et objets Python

Une classe peut être considérée comme un schéma pour un objet alors qu’un objet est une collection de données membres et la fonction membre.

Une classe contient des données membres (variables) et des fonctions membres (méthodes) auxquelles on peut accéder en utilisant les objets de cette classe.

Création d’une classe

Une classe est créée en utilisant le mot-clé class et ensuite le nom de la classe:

La syntaxe est la suivante:

class NameofClass:
    # data members of the class
    # member functions of the class

Exemple:

>>> class Waiter:
	name = "Andrew"
	def display():
		print('Waiter Class')	
>>> print(Waiter.display)
<function Waiter.display at 0x0359E270>
>>> print(Waiter.name)
Andrew

Cet exemple crée une classe nommée Waiter qui contient un membre de données name et une méthode membre display().

Créer une instance d’objet d’une classe

Une instance d’objet peut être créée en utilisant la syntaxe suivante:

obj = className()

Exemple:

>>> w = Waiter()
>>> print(w.name)
Andrew
>>> w.display()
Waiter Class

Vous pourriez voir ici que l’objet de la classe Waiter est utilisé pour accéder aux membres (attributs) de la classe en utilisant l’opérateur point.

Les attributs de la classe

En plus des membres de données et des fonctions des membres, il y a quelques attributs intégrés d’une classe Python.

  1. __dict__ : est un dictionnaire qui contient le namespace de la classe.
  2. __doc__ : est la chaîne de documentation de la classe
  3. __name__ : c’est le nom de la classe
  4. __module__ : est le module dans lequel la classe est définie.
  5. __bases__ : est un tuple qui contient la classe de base.

Ces attributs sont accessibles en utilisant l’opérateur point.

Exemple:

>>> class Waiter:
	"This is a waiter class"
	name="Andrew"
	def display():
		print("You are in waiter class")
>>> w = Waiter()

>>> print(w.__doc__)
This is a waiter class

>>> print(w.__dict__)
{}

>>> print(w.__module__)
__main__

Constructeurs de classes Python

Un constructeur dans la POO Python est créé en utilisant __init__(). Cette méthode intégrée est une méthode spéciale appelée quand un objet de la classe correspondante est créé.

Les constructeurs sont utilisés pour initialiser les données membres de la classe.

>>> class Waiter:
        def __init__(self, n):
            self.name=n
            self.age=20
        def display(self):
            print(self.name)

>>> w=Waiter('Rob')
>>> w.display()
Rob

Ici, l’argument self est utilisé dans la définition des constructeurs et aussi dans toutes les méthodes de la classe. Par conséquent, quand vous appelez une fonction telle que w.display(), elle est interprétée comme Waiter.display(w).

Supprimer les attributs de la classe

Vous pouvez utiliser l’instruction del pour supprimer les attributs et les objets d’une classe.

>>> w=Waiter('Rob')
>>> w.__dict__
{'name': 'Rob', 'age': 20}
>>> del w.age
>>> w.__dict__
{'name': 'Rob'}
Auteur: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook