Revision sheet: Introduction à la Programmation Orientée Objet en Python

Plan du Cours

  1. Programmation orientée objet et classes
  2. Classe Python et constructeur
  3. Instances et accès aux attributs
  4. Attributs à valeur par défaut
  5. Méthodes de mise en marche et arrêt
  6. Consommation d'essence

1. Programmation orientée objet et classes

Notions clés & Définitions

  • Programmation orientée objet : La programmation orientée objet organise le code autour d’objets manipulés via une classe.
  • Classe : Une classe décrit la structure interne d’un objet grâce à des attributs et des méthodes.
  • Objet (instance) : Un objet, appelé aussi instance, est créé à partir d’une classe pour stocker un état propre.
  • Diagramme UML : Le diagramme UML représente le nom de la classe, ses attributs et ses méthodes dans une vue structurée.

Points essentiels

  • Une classe sert à créer des objets appelés instances, chacun ayant sa propre structure et ses valeurs d’attributs.
  • Les attributs sont des propriétés associées à un objet tandis que les méthodes sont des fonctions qui agissent sur cet objet.
  • La représentation UML d’une classe liste les attributs avec leur type et les méthodes avec leurs paramètres et type de retour.

2. Classe Python et constructeur

Notions clés & Définitions

  • mot clé class : En Python, class définit l’en-tête d’une classe dont le nom suit la convention de commencer par une majuscule.
  • self : self désigne l’objet courant sur lequel la méthode travaille dans la classe.
  • Méthode def : Une méthode se définit avec def à l’intérieur de la classe, et elle s’applique à un objet via self.
  • Constructeur init : init est une méthode spéciale appelée automatiquement à la création d’un objet pour initialiser ses attributs.

Points essentiels

  • Lors de la définition d’une méthode dans une classe, le premier paramètre doit être self pour accéder à l’état de l’objet.
  • Le constructeur init initialise les attributs d’instance et reçoit les paramètres passés lors de la création de l’objet.
  • La création d’instance avec paramètres copie les arguments dans les paramètres du constructeur.
  • Si le constructeur n’a pas d’autres paramètres que self, l’instanciation se fait avec la syntaxe Ma_classe().

3. Instances et accès aux attributs

Notions clés & Définitions

  • Accès attribut nom_objet.nom_attribut : Pour lire ou utiliser un attribut, on précise l’objet puis le nom de l’attribut avec le séparateur point.
  • Accès méthode nom_objet.nom_methode() : Pour exécuter une méthode, on précise l’objet puis le nom de la méthode suivi de parenthèses.
  • Variable et fonction indépendantes : Une variable et une fonction ne sont pas liées à un objet particulier contrairement aux membres d’une classe.

Points essentiels

  • Dans une classe, attributs et méthodes sont propres à l’objet, alors que variables et fonctions sont indépendantes de tout objet.
  • À partir d’une instance ma_voiture, lire ma_voiture.modele renvoie la valeur stockée pour l’objet.
  • Dans l’exemple, le calcul de prix utilise une méthode de classe sous forme de fonction, puis le résultat est imprimé avec print.

4. Attributs à valeur par défaut

Notions clés & Définitions

  • Valeur par défaut : Une valeur par défaut est une valeur fournie au paramètre du constructeur, utilisée si aucun argument n’est passé à la création.
  • Attribut obligatoire via constructeur : Un attribut peut être imposé en le passant en paramètre au constructeur sans valeur par défaut.

Points essentiels

  • Avec un constructeur def init(self, mq="Peugeot"), l’instance créée par Voiture() affiche la valeur de marque par défaut.
  • Pour rendre la marque obligatoirement Peugeot, il faut supprimer la possibilité de passer une autre valeur au paramètre du constructeur.
  • Créer ma_voiture=Voiture() déclenche l’initialisation avec la valeur par défaut du paramètre mq.

Astuce mémo

Par défaut = pas d’argument = valeur imposée par le paramètre (comme mq="Peugeot").

5. Méthodes de mise en marche et arrêt

Notions clés & Définitions

  • Attribut estenmarche : estenmarche est un attribut booléen qui indique si la voiture est en fonctionnement ou à l’arrêt.
  • Méthode mise_en_marche() : mise_en_marche() modifie l’état de la voiture en la mettant en marche si elle est à l’arrêt.
  • Méthode mise_a_arret() : mise_a_arret() modifie l’état de la voiture en la mettant à l’arrêt si elle fonctionne.

Points essentiels

  • mise_en_marche() met estenmarche à True et affiche « La voiture est en marche » seulement si la voiture était à l’arrêt.
  • mise_en_marche() affiche « Action inutile, la voiture est déjà en marche » quand estenmarche est déjà True.
  • mise_a_arret() met estenmarche à False et affiche « La voiture est arrêtée » seulement si la voiture fonctionne.
  • mise_a_arret() affiche « Action inutile, la voiture est déjà à l’arrêt » quand estenmarche est déjà False.

6. Consommation d'essence

Notions clés & Définitions

  • Attribut quantite_essence : quantite_essence stocke le volume restant de carburant d’une instance de voiture.
  • Méthode consommation_essence() : consommation_essence(v) réduit le carburant si la voiture fonctionne et gère l’arrêt en cas de panne.
  • Panne d’essence : La panne d’essence correspond à l’état où le réservoir ne contient plus suffisamment d’essence après consommation.

Points essentiels

  • Le constructeur ajoute quantite_essence et l’initialise impérativement à 50 litres lors de la création d’une instance.
  • Si la voiture fonctionne, consommation_essence(v) soustrait v à quantite_essence et, si plus d’essence reste, met estenmarche à False et affiche « panne d’essence ».
  • Si la voiture est à l’arrêt, consommation_essence(v) n’altère pas le carburant et affiche « action impossible, la voiture est arrêtée ».
  • Quand il y a panne, la méthode affiche aussi la quantité d’essence restante sur la console.

Astuce mémo

Fonctionne ? alors on consomme ; plus d’essence après consommation ? alors arrêt + message « panne d’essence ».

Tableaux de synthèse

Membres liés à l’objet

ÉlémentLié à un objet
AttributOui (propre à l’objet)
MéthodeOui (agit sur l’objet)
VariableNon (indépendante de tout objet)
FonctionNon (indépendante de tout objet)

Pièges & confusions fréquents

  1. Confondre attributs et méthodes : un attribut stocke l’état, tandis qu’une méthode effectue une action sur l’objet.
  2. Oublier self comme premier paramètre d’une méthode définie dans la classe, ce qui empêche d’associer correctement la méthode à l’objet courant.
  3. Accéder à un attribut ou une méthode sans passer par l’instance, par exemple omettre le nom de l’objet avant nom_attribut ou nom_methode().
  4. Croire que la valeur par défaut remplace toujours les valeurs passées : elle n’est utilisée que si aucun argument n’est fourni.
  5. Dans mise_en_marche() et mise_a_arret(), inverser les messages et conditions, par exemple mettre en marche alors que estenmarche vaut déjà True.
  6. Dans consommation_essence(), diminuer quantite_essence même quand la voiture est à l’arrêt, alors que le cours impose l’absence d’action et un message d’impossibilité.

Checklist Examen

  1. Savoir définir une classe en Python avec class et un nom commençant par une majuscule.
  2. Savoir expliquer le rôle de self dans une méthode et identifier le premier paramètre requis.
  3. Savoir reconnaître et décrire le constructeur init et son appel automatique à la création d’un objet.
  4. Savoir utiliser la syntaxe nom_objet.nom_attribut pour accéder à la valeur d’un attribut d’instance.
  5. Savoir utiliser la syntaxe nom_objet.nom_methode() pour exécuter une méthode d’instance.
  6. Savoir lire un exemple de programme et identifier dans le code : classe, attributs, méthodes, variables, instanciation et accès aux attributs.
  7. Savoir instancier une classe avec des arguments et comprendre que les arguments sont transmis au constructeur.
  8. Savoir interpréter une valeur par défaut dans un paramètre de constructeur et prédire l’affichage lors de ma_voiture=Voiture().
  9. Savoir comment rendre un attribut lié à une valeur imposée (exigé) en supprimant le paramètre variable au constructeur.
  10. Savoir décrire et tester mise_en_marche() selon l’état de estenmarche : changement + message ou action inutile + message.
  11. Savoir décrire et tester mise_a_arret() selon l’état de estenmarche : changement + message ou action inutile + message.
  12. Savoir initialiser quantite_essence à 50 dans le constructeur et écrire le comportement de consommation_essence(v) : soustraction si en marche, panne + arrêt si plus d’essence, message d’impossibilité si arrêté.
  13. Savoir prédire et vérifier les messages affichés par les méthodes mise_en_marche(), mise_a_arret() et consommation_essence().

Test your knowledge

Test your knowledge on Introduction à la Programmation Orientée Objet en Python with 12 multiple-choice questions with detailed corrections.

1. Quel énoncé décrit le mieux la programmation orientée objet ?

2. Dans une classe, quel rôle jouent les attributs et les méthodes ?

Take the quiz →

Review with flashcards

Memorize the key concepts of Introduction à la Programmation Orientée Objet en Python with 12 interactive flashcards.

Programmation orientée objet — définition ?

Organisation du code autour d’objets et classes

Classe Python — rôle ?

Définir la structure d’un objet

Constructeur __init__ — fonction ?

Initialise les attributs d’une instance

See flashcards →

Similar courses

Create your own revision sheets

Import your course and AI generates sheets, quizzes and flashcards in 30 seconds.

Sheet generator