Programmation Orientée Objet en Python
  • Back to Main Website
  • Home
  • Introduction: Histoire et Concepts
    • Introduction: Histoire et Concepts
    • Histoire de la programmation
    • Première Structuration des données
    • Naissance de la POO
    • Python: tout n’est qu’objet
    • Python : Simplicité des objets et performance sous-jacente
    • Classes en Python : Concepts fondamentaux

    • Travaux Pratiques
    • Construire sa propre Liste
    • Construire son propre DataFrame
  • Encapsulation, Héritage, Composition et Dunder
    • Encapsulation, Heritage, Composition et Dunder
    • Encapsulation en Python
    • Héritage en Python : Concept et intérêt
    • Héritage vs Composition
    • Méthodes Dunder en Python
    • Python call Method: A Fun Exploration

    • Travaux Pratiques
    • TP: Heritage avec le pricing d’option
    • TP : Ajouter des méthodes dunder à DataFrameSimple
    • TP : Étendre la classe Liste avec des méthodes dunder
    • TP: Dunder Method with Tensor for Automatic Differentiation
  • Polymorphisme et Surcharge
    • Polymorphisme et Surcharge
    • Polymorphism in Object-Oriented Programming
    • Polymorphism in Python: Function Overloading and Type Checking
    • Class Creation: Standard vs type()
    • Type Hinting, Typing Module, and Linters in Python
    • Abstract Classes
    • Protocol Classes

    • Travaux Pratiques
    • TP
  • Decorators
    • Design Patterns
    • The decorator pattern
    • Decorator Practically
    • Built-in Decorators and Standard Library Decorators in Python
    • Practical Decorators in Python Libraries

    • Travaux Pratiques
    • TP: Monte Carlo Option Pricing with Decorators
    • TP: Optimizing Heston Model Monte Carlo Simulation
  • Project Management and Packaging
    • Project and Package
    • Organizing Python Projects
    • Understanding imports
    • Python Package Management and Virtual Environments
    • Unit Testing in Python

    • Travaux Pratiques
    • TP: Creating a Linear Regression Package
  • Design Patterns
    • OOP Design Patterns
    • Python-Specific Design Patterns
    • Creation Design Patterns
    • Structural Design Patterns
    • Behavioral Design Pattern

    • Travaux Pratiques
    • TP
  • Sujets de Projets possibles
    • Projets
    • Projets POO - 2024-2025
  • Code source
  1. Classes en Python : Concepts fondamentaux
  • Introduction: Histoire et Concepts
  • Histoire de la programmation
  • Première Structuration des données
  • Naissance de la POO
  • Python: tout n’est qu’objet
  • Python : Simplicité des objets et performance sous-jacente
  • Classes en Python : Concepts fondamentaux
  • Travaux Pratiques
    • Construire sa propre Liste
    • Construire son propre DataFrame

On this page

  • Classes en Python : Concepts fondamentaux
    • 1. Qu’est-ce qu’une classe ?
    • 2. Création d’une instance
    • 3. Comprendre la différence entre classe et instance
    • 4. Comprendre ‘self’
      • 4.1 Rôle de ‘self’
    • 5. Méthode init
    • 6. Attributs de classe vs attributs d’instance (version étendue)
      • 6.1 Attributs de classe
      • 6.2 Attributs d’instance
    • 7. Comprendre ‘self’ en profondeur
      • 7.1 ‘self’ comme référence à l’instance
      • 7.2 ‘self’ est une convention
    • 8. Introduction aux conventions de codage (PEP 8)
      • 8.1 Quelques règles importantes de PEP 8 pour les classes :
      • 8.2 Importance de PEP 8

Classes en Python : Concepts fondamentaux

Cours
Introduction
Découvrez les concepts fondamentaux des classes en Python, y compris les attributs de classe vs d’instance, le rôle de ‘self’, et les conventions de codage.
Author

Remi Genet

Published

2024-10-21

Classes en Python : Concepts fondamentaux


1. Qu’est-ce qu’une classe ?

Une classe en Python est un plan ou un modèle pour créer des objets. Elle définit les caractéristiques (attributs) et les comportements (méthodes) que les objets de cette classe auront.

2. Création d’une instance

Une instance est un objet spécifique créé à partir d’une classe.

3. Comprendre la différence entre classe et instance

  • La classe est le modèle général (comme un plan d’architecte).
  • L’instance est un objet spécifique créé à partir de ce modèle (comme une maison construite selon le plan).

Exemple :

Dans cet exemple, Voiture est la classe, tandis que voiture1 et voiture2 sont des instances de cette classe.

4. Comprendre ‘self’

self est une convention en Python pour référencer l’instance actuelle de la classe. C’est le premier paramètre de toutes les méthodes d’instance.

4.1 Rôle de ‘self’

  • self permet à la méthode de savoir sur quelle instance spécifique elle travaille.
  • Il est automatiquement passé par Python lors de l’appel d’une méthode sur une instance.

Dans cet exemple : - self.marque = marque stocke la marque pour cette instance spécifique. - Dans description(), self.marque fait référence à la marque de l’instance sur laquelle la méthode est appelée.

5. Méthode init

__init__ est une méthode spéciale en Python, appelée constructeur. Elle est automatiquement appelée lors de la création d’une nouvelle instance.

6. Attributs de classe vs attributs d’instance (version étendue)

6.1 Attributs de classe

Ils sont partagés par toutes les instances de la classe, mais peuvent être modifiés au niveau de l’instance.

Dans cet exemple, ma_voiture.accident() modifie l’attribut nombre_de_roues pour cette instance spécifique, sans affecter la classe ou les autres instances.

6.2 Attributs d’instance

Les attributs d’instance sont spécifiques à chaque objet créé à partir de la classe.

Dans cet exemple, marque, modele, et kilometrage sont des attributs d’instance. Chaque instance de Voiture a ses propres valeurs pour ces attributs. Modifier un attribut d’instance pour un objet n’affecte pas les autres objets de la même classe.

7. Comprendre ‘self’ en profondeur

self est une référence à l’instance courante de la classe. C’est le premier paramètre de toute méthode d’instance en Python.

7.1 ‘self’ comme référence à l’instance

Lorsqu’une méthode est appelée sur une instance, Python passe automatiquement cette instance comme premier argument à la méthode.

7.2 ‘self’ est une convention

Bien que ‘self’ soit une convention, on peut techniquement utiliser n’importe quel nom :

Cependant, utiliser ‘self’ est fortement recommandé pour la lisibilité et le respect des conventions.

8. Introduction aux conventions de codage (PEP 8)

PEP 8 est le guide de style pour le code Python. Il fournit des conventions pour écrire du code Python lisible et cohérent.

8.1 Quelques règles importantes de PEP 8 pour les classes :

  1. Noms de classe : Utilisez la convention CapWords (aussi appelée PascalCase).

  2. Noms de méthodes et d’attributs : Utilisez des minuscules avec des underscores pour séparer les mots.

  3. Constantes : Utilisez des majuscules avec des underscores.

  4. Espaces : Pas d’espaces autour des parenthèses ou des crochets, mais un espace après les virgules.

  5. Indentation : Utilisez 4 espaces par niveau d’indentation.

8.2 Importance de PEP 8

Suivre PEP 8 rend votre code : - Plus lisible pour les autres développeurs - Plus cohérent avec la majorité du code Python - Plus facile à maintenir sur le long terme

Back to top
Python : Simplicité des objets et performance sous-jacente
Construire sa propre Liste

Programmation Orienté Object en Python, Rémi Genet.
Licence
Code source disponible sur Github

 

Site construit avec et Quarto
Inspiration pour la mise en forme du site ici
Code source disponible sur GitHub