Introduction à la POO en Python
Introduction à la POO en Python
Contenu
1. Introduction ................................................................................................................................... 2
1. La classe :........................................................................................................................................ 3
2. Le constructeur .............................................................................................................................. 3
3. Le destructeur ................................................................................................................................ 4
4. Un objet .......................................................................................................................................... 5
5. Les attributs .................................................................................................................................... 5
6. Les méthodes ................................................................................................................................. 6
7. L’abstraction ................................................................................................................................... 8
8. Encapsulation ............................................................................................................................... 10
9. Les Getters(Accesseurs)................................................................................................................ 12
10. Les Setters(Mutateurs) ............................................................................................................. 13
11. Applications .............................................................................................................................. 15
12. Héritage .................................................................................................................................... 16
13. Le polymorphisme .................................................................................................................... 17
14. La surcharge ............................................................................................................................. 19
15. Interface et classe abstraite ..................................................................................................... 20
16. Implémentation ........................................................................................................................ 24
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 1
Introduction à la Programmation Orientée Objet(POO) en Python
1. Introduction
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 2
Introduction à la Programmation Orientée Objet(POO) en Python
1. La classe :
La POO repose principalement sur les classes. Une classe est une structure de
données qui définit à la fois des attributs (variables membres) et des méthodes
(fonctions membres). Elle est un modèle ou un plan qui définit les caractéristiques
et les comportements d'un type d'objet.
class Livre:
def __init__(self):
pass
2. Le constructeur
Un constructeur est une méthode spéciale qui est utilisée pour initialiser les objets
d'une classe. Il est appelé automatiquement lors de la création d'un nouvel objet et
est responsable de l'allocation de mémoire, de l'initialisation des attributs et de
l'exécution de toute autre logique nécessaire pour configurer l'objet.
un constructeur est défini dans une classe avec le même nom __init__(self). Il n'a pas
de type de retour spécifié. Il peut prendre des paramètres ou être défini sans
paramètre, ce qui est appelé constructeur par défaut.
Appel automatique : Lorsque vous créez un nouvel objet à partir d'une classe,
le constructeur approprié est appelé automatiquement pour initialiser l'objet.
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 3
Introduction à la Programmation Orientée Objet(POO) en Python
class Livre:
def __init__(self):
pass
3. Le destructeur
Libération des ressources : Le destructeur est utilisé pour libérer les ressources
allouées par l'objet, telles que la mémoire allouée dynamiquement, les fichiers
ouverts, les connexions réseau, etc. Il est important de libérer toutes les
ressources pour éviter les fuites de mémoire et les comportements
indésirables.
class Livre:
def __init__(self):
pass
def __del__(self):
print(self, " est surimé")
L1 = Livre()
L2 = Livre()
L3 = Livre()
print(L1)
print(L2)
print(L3)
L1=None
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 4
Introduction à la Programmation Orientée Objet(POO) en Python
4. Un objet
class Livre:
def __init__(self):
pass
L1 = Livre()
L2 = Livre()
L3 = Livre()
print(L1)
print(L2)
print(L3)
5. Les attributs
Les attributs, également appelés données membres ou variables membres, sont des
variables déclarées à l'intérieur d'une classe. Ils représentent les caractéristiques ou
les données associées à un objet de cette classe. Chaque instance de la classe a sa
propre copie des attributs, qui stockent des valeurs spécifiques pour chaque objet.
Les attributs permettent de décrire l'état d'un objet et d'enregistrer les données qui
lui sont associées. Par exemple, dans une classe ‘Personne’, les attributs pourraient
inclure le nom, prénom, le salaire, l'âge, l'adresse, etc. Chaque objet ‘Personne’ aurait
ses propres valeurs pour ces attributs.
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 5
Introduction à la Programmation Orientée Objet(POO) en Python
class Livre:
def __init__(self, titre, quantite, auteur, prix):
[Link] = titre
[Link] = quantite
[Link] = auteur
[Link] = prix
print(L1)
print(L2)
print(L3)
6. Les méthodes
Les méthodes, également appelées fonctions membres, sont des fonctions définies
à l'intérieur d'une classe. Elles permettent de définir le comportement et les actions
associées à un objet de cette classe. Les méthodes sont utilisées pour effectuer des
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 6
Introduction à la Programmation Orientée Objet(POO) en Python
opérations sur les attributs d'un objet, interagir avec d'autres objets, effectuer des
calculs, fournir des fonctionnalités spécifiques, etc.
d. Accès aux attributs : Les méthodes ont accès aux attributs de la classe et
peuvent les lire, les modifier ou les manipuler selon les besoins. Cela permet
d'encapsuler la logique de traitement des données à l'intérieur de la classe.
e. Invocation : Les méthodes sont invoquées sur des objets spécifiques à l'aide de
l'opérateur de point (‘[Link]()’)
f. Passage de paramètres : Les méthodes peuvent accepter des paramètres, qui
sont des valeurs passées à la méthode pour effectuer des opérations ou des
calculs spécifiques. Les paramètres peuvent être passés par valeur, par
référence ou par pointeur.
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 7
Introduction à la Programmation Orientée Objet(POO) en Python
class Personne:
Nom="MATY"
Prenom="Maman"
Age=53
Salaire=1500000
Taille= 1.89
def afficher(self):
print([Link],[Link], [Link],[Link], [Link])
P=Personne()
[Link]()
7. L’abstraction
L'abstraction est un concept clé en programmation orientée objet (POO) qui vise à
simplifier la complexité en masquant les détails internes d'un objet ou d'un système
et en se concentrant uniquement sur les aspects essentiels et pertinents.
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 8
Introduction à la Programmation Orientée Objet(POO) en Python
Exemples complets
La classe Livre
class Livre:
def __del__(self):
print(f"{[Link]} est supprimé aumatiquement")
def __repr__(self):
return f"Livre: {[Link]}, Quantité: {[Link]}, Auteur: {[Link]}, Prix: {[Link]}"
def detail(self):
print(f"\n-----------\nLivre: {[Link]}, \nQuantité: {[Link]}, \nAuteur: {[Link]}, \nPrix:
{[Link]}")
print(L1)
print(L2)
print(L3)
[Link]()
# L3=None
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 9
Introduction à la Programmation Orientée Objet(POO) en Python
La Classe Personne
class Personne:
Nom="MATY"
Prenom="Maman"
Age=53
Salaire=1500000
Taille= 1.89
def afficher(self):
print([Link],[Link], [Link],[Link], [Link])
P=Personne()
[Link]()
P1=Personne()
[Link]()
8. Encapsulation
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 10
Introduction à la Programmation Orientée Objet(POO) en Python
Protection des données : En déclarant les attributs comme privés, on limite l'accès
direct aux données à l'intérieur de la classe. Cela permet de contrôler comment les
données sont modifiées et d'appliquer des validations ou des règles de gestion
appropriées avant de modifier les valeurs des attributs.
Réduction de la complexité : L'encapsulation permet de cacher les détails de mise
en œuvre et de fournir une interface simplifiée pour les utilisateurs de la classe.
Cela réduit la complexité et facilite l'utilisation de l'objet, car les utilisateurs n'ont
besoin de connaître que l'interface publique pour interagir avec l'objet.
class Livre:
def getRemise(self):
return self.__remise
def __repr__(self):
return f"Livre: {[Link]}, Quantité: {[Link]}, Auteur: {[Link]}, Prix:
{[Link]}"
def detail(self):
print(f"Livre: {[Link]}, Quantité: {[Link]}, Auteur: {[Link]}, Prix:
{[Link]}")
print([Link])
print([Link])
print([Link])
print([Link])
print([Link]())
try:
print(L1.__remise) # attribut cahé
except:
print("L'acces à la remise n'est pas autorisé!! Passez par un getteur")
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 11
Introduction à la Programmation Orientée Objet(POO) en Python
9. Les Getters(Accesseurs)
Les getters, également connus sous le nom d'accesseurs, sont des méthodes utilisées
dans la programmation orientée objet (POO) pour accéder aux valeurs des attributs
privés d'une classe depuis l'extérieur de celle-ci. Les getters permettent d'obtenir les
valeurs des attributs sans accéder directement à ces derniers, en respectant ainsi le
principe d'encapsulation.
Visibilité publique : Les getters sont déclarés comme des méthodes publiques afin
de permettre leur accès depuis l'extérieur de la classe.
Nom explicite : Les getters sont généralement nommés avec un préfixe "get" suivi
du nom de l'attribut qu'ils permettent d'obtenir. Par exemple, si l'attribut est
nommé "age", le getter correspondant pourrait s'appeler "getAge()".
Pas de paramètres : Les getters ne prennent généralement pas de paramètres, car
ils sont utilisés pour obtenir une valeur spécifique sans nécessiter d'arguments
supplémentaires.
Retour de la valeur : Les getters retournent généralement la valeur de l'attribut
demandé, qui peut être de n'importe quel type (entier, chaîne de caractères, objet,
etc.). Le type de retour du getter doit correspondre au type de l'attribut.
class Livre:
def getRemise(self):
return self.__remise
def getPrix(self):
if self.__remise:
return self.__prix * (1-self.__remise)
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 12
Introduction à la Programmation Orientée Objet(POO) en Python
return self.__prix
def __repr__(self):
return f"Livre: {[Link]}, Quantité: {[Link]}, Auteur: {[Link]}, Prix:
{[Link]()}"
def detail(self):
print(f"Livre: {[Link]}, Quantité: {[Link]}, Auteur: {[Link]}, Prix:
{[Link]()}")
Les setters, également connus sous le nom de mutateurs, sont des méthodes utilisées
dans la programmation orientée objet (POO) pour modifier les valeurs des attributs
privés d'une classe depuis l'extérieur de celle-ci. Les setters permettent de mettre à
jour les valeurs des attributs tout en respectant le principe d'encapsulation.
Visibilité publique : Les setters sont déclarés comme des méthodes publiques
afin de permettre leur accès depuis l'extérieur de la classe.
Nom explicite : Les setters sont généralement nommés avec un préfixe "set"
suivi du nom de l'attribut qu'ils permettent de modifier. Par exemple, si
l'attribut est nommé "age", le setter correspondant pourrait s'appeler
"setAge()".
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 13
Introduction à la Programmation Orientée Objet(POO) en Python
class Livre:
def getRemise(self):
return self.__remise
def getPrix(self):
if self.__remise:
return self.__prix * (1-self.__remise)
return self.__prix
def __repr__(self):
return f"Livre: {[Link]}, Quantité: {[Link]}, Auteur: {[Link]}, Prix: {[Link]()}"
def detail(self):
print(f"Livre: {[Link]}, Quantité: {[Link]}, Auteur: {[Link]}, Prix: {[Link]()}")
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 14
Introduction à la Programmation Orientée Objet(POO) en Python
11. Applications
Exo d'application
1. Créer la classe "Voiture" avec les attributs marque, couleur, modèle, typecarburant,
réservoir, vitesse, vitesseMax roues, prix, stock et les methodes: démarrer,
accélérer,arreter, ajoutcarbunrant, infovoiture, etc
2. Créer la classe "Point" pour gérer les points avec comme attributs x et y, comme
méthodes, afficher, norme, determinant, produit scalaire
3. Créer les classes Retangle,Triangle, Cercle, Carré
4. Écrire un programme en Python qui simule la gestion d’un simple compte bancaire. Le
compte est créé avec un solde initial. Il est possible de déposer et de retirer des fonds,
d’ajouter des intérêts et de connaître le solde actuel. Cela devrait être implémenté dans
une classe nommée Account qui comprend:
Un constructeur par défaut qui met le solde initial à zéro.
un constructeur qui accepte une balance initial comme paramètre.
Une fonction getBalance qui renvoie le solde actuel
Une méthode deposer pour déposer un montant spécifié.
Une méthode retirer pour retirer un montant spécifié.
Une méthode ajouter_Interet pour ajouter de l’intérêt au compte
La méthode ajouter_Interet prend le taux d’intérêt comme paramètre et modifie le
solde du compte en solde * (1 + taux d’intérêt).
5. Créer la classe Etudiant avec les attributs Matricule, nom, prenom, moyenne, rang,
mention et les méthodes nécessaires pour traiter les étudiants
un constructeur par défaut (sans paramètres) permettant d’effectuer différents calculs sur
les nombres entiers.
Créer au sein de la classe Calcul une méthode nommée Factorielle() qui permet de calculer le
factorielle d'un entier. Tester la méthode en faisant une instanciation sur la classe.
Créer au sein de la classe Calcul une méthode nommée Somme() permettant de calculer
la somme des n premiers entiers: 1 + 2 + 3 + .. + n. Tester la méthode.
Créer au sein de la classe Calcul une méthode nommée testPrim() permettant de tester
la primalité d'un entier donné. Tester la méthode.
Créer au sein de la classe Calcul une méthode nommée testPrims() permettant de tester si
deux nombres sont premier entre eux.
Créer une méthode tableMult() qui crée et affiche la table de multiplication d'un entier
donné. Créer ensuite une méthode allTablesMult() permettant d'afficher toutes les tables
de multiplications des entiers 1, 2, 3, ..., 9.
Créer une méthode listDiv() qui récupère tous les diviseurs d'un entier donné sur une liste
Ldiv. Créer une autre méthode listDivPrim() qui récupère tous les diviseurs premiers d'un
entier donné.
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 15
Introduction à la Programmation Orientée Objet(POO) en Python
12. Héritage
L'héritage est utilisé pour établir une relation "est-un" entre les classes, ce qui signifie
qu'une sous-classe est une version spécifique de sa classe de base. La classe de base
fournit un ensemble de fonctionnalités générales qui peuvent être réutilisées par les
sous-classes, tandis que les sous-classes peuvent ajouter des fonctionnalités
supplémentaires spécifiques à leur domaine d'application.
Classe de base et sous-classes : La classe de base est la classe existante dont les
attributs et les méthodes sont hérités. Les sous-classes sont les nouvelles classes
créées qui héritent de la classe de base. Les sous-classes peuvent avoir leurs
propres attributs et méthodes en plus de ceux hérités.
Relation "est-un" : L'héritage établit une relation "est-un" entre les classes, ce qui
signifie qu'une sous-classe est une version spécifique de la classe de base. Par
exemple, une classe de base "Animal" peut avoir des sous-classes telles que
"Chien", "Chat" et "Oiseau".
Héritage des attributs et méthodes : Les sous-classes héritent des attributs et des
méthodes de la classe de base. Cela signifie que les sous-classes peuvent accéder
aux attributs et aux méthodes hérités comme s'ils leur appartenaient directement.
Redéfinition (ou surcharge) : Les sous-classes peuvent redéfinir (ou surcharger) les
méthodes héritées pour modifier leur comportement ou les adapter aux besoins
spécifiques de la sous-classe. Cela permet de personnaliser le comportement
hérité sans modifier la classe de base.
Niveaux d'héritage : L'héritage peut former une hiérarchie de plusieurs niveaux, où
une sous-classe peut devenir une classe de base pour d'autres sous-classes. Cela
permet de créer des structures d'héritage complexes pour modéliser des relations
entre des entités du monde réel.
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 16
Introduction à la Programmation Orientée Objet(POO) en Python
class Animal:
def parler(self):
print("Je parle")
class Chien(Animal):
def parler(self):
return "Woof !"
13. Le polymorphisme
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 17
Introduction à la Programmation Orientée Objet(POO) en Python
class Animal:
def parler(self):
pass
class Chien(Animal):
def parler(self):
return "Woof !"
class Chat(Animal):
def parler(self):
return "Miaou !"
class Vache(Animal):
def parler(self):
return "Meuh !"
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 18
Introduction à la Programmation Orientée Objet(POO) en Python
14. La surcharge
La surcharge de fonctions se base sur les paramètres des fonctions pour les
différencier. Deux fonctions peuvent avoir le même nom si elles ont des listes de
paramètres différentes (nombre, types ou ordre des paramètres).
class Surcharge:
S = Surcharge()
[Link](2, 3,3)
[Link]('Maman', ' Maman', ' Siradji')
number = 10
print(number.__add__(20))
text="MATY"
print(text.__add__(" Maman"))
Dans cet exemple, nous avons deux fonctions nommées "addition", mais elles
prennent des types de paramètres différents. La première fonction "addition" prend
deux entiers en paramètres et renvoie leur somme, tandis que la deuxième fonction
"addition" prend deux chaînes de caractères en paramètres et renvoie leur
concaténation.
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 19
Introduction à la Programmation Orientée Objet(POO) en Python
class Personne:
def __init__(self, nom, prenom,poids, age, salaire):
[Link] = nom
[Link] = prenom
[Link] = poids
[Link] = age
[Link] = salaire
Bien que Python ne nécessite pas explicitement de déclarer une interface, vous
pouvez utiliser des classes abstraites de cette manière pour obtenir un comportement
similaire. Cela permet une meilleure organisation du code et garantit que certaines
fonctionnalités sont disponibles dans toutes les classes qui implémentent l'interface.
class Personne(ABC):
def __init__(self, matricule, nom, prenom, nationalite, date_de_naissance):
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 20
Introduction à la Programmation Orientée Objet(POO) en Python
[Link] = matricule
[Link] = nom
[Link] = prenom
[Link] = nationalite
self.date_de_naissance = date_de_naissance
@abstractmethod
def afficher_informations(self):
pass
class Enseignant(Personne):
def __init__(self, matricule, nom, prenom, salaire, nationalite, date_de_naissance):
super().__init__(matricule, nom, prenom, nationalite, date_de_naissance)
[Link] = salaire
def afficher_informations(self):
print("Matricule:", [Link])
print("Nom:", [Link])
print("Prénom:", [Link])
print("Salaire:", [Link])
print("Nationalité:", [Link])
print("Date de naissance:", self.date_de_naissance)
print("Statut: Enseignant")
class Etudiant(Personne):
def __init__(self, matricule, nom, prenom, nationalite, date_de_naissance):
super().__init__(matricule, nom, prenom, nationalite, date_de_naissance)
def afficher_informations(self):
print("Matricule:", [Link])
print("Nom:", [Link])
print("Prénom:", [Link])
print("Nationalité:", [Link])
print("Date de naissance:", self.date_de_naissance)
print("Statut: Étudiant")
class Employe(Personne):
def __init__(self, matricule, nom, prenom, nationalite, date_de_naissance, service,
categorie):
super().__init__(matricule, nom, prenom, nationalite, date_de_naissance)
[Link] = service
[Link] = categorie
def afficher_informations(self):
print("Matricule:", [Link])
print("Nom:", [Link])
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 21
Introduction à la Programmation Orientée Objet(POO) en Python
print("Prénom:", [Link])
print("Nationalité:", [Link])
print("Date de naissance:", self.date_de_naissance)
print("Service:", [Link])
print("Catégorie:", [Link])
print("Statut: Employé")
# Exemple d'utilisation
enseignant = Enseignant(matricule="123", nom="MATY", prenom="Maman",
salaire=300000, nationalite="Nigérienne", date_de_naissance="01/01/1971")
etudiant = Etudiant(matricule="456", nom="MAMAN MATY", prenom="Faridah",
nationalite="Gabonaise", date_de_naissance="12/09/2001")
employe = Employe(matricule="789", nom="OSSENE", prenom="Raoul",
nationalite="Gabonaise", date_de_naissance="10/10/1985", service="RH",
categorie="Cadre")
enseignant.afficher_informations()
print("\n")
etudiant.afficher_informations()
print("\n")
employe.afficher_informations()
Interface
class IPersonne(ABC):
@abstractmethod
def afficher_informations(self):
pass
class Enseignant(IPersonne):
def __init__(self, matricule, nom, prenom, salaire, nationalite, date_de_naissance):
[Link] = matricule
[Link] = nom
[Link] = prenom
[Link] = salaire
[Link] = nationalite
self.date_de_naissance = date_de_naissance
def afficher_informations(self):
print("Matricule:", [Link])
print("Nom:", [Link])
print("Prénom:", [Link])
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 22
Introduction à la Programmation Orientée Objet(POO) en Python
print("Salaire:", [Link])
print("Nationalité:", [Link])
print("Date de naissance:", self.date_de_naissance)
print("Statut: Enseignant")
class Etudiant(IPersonne):
def __init__(self, matricule, nom, prenom, nationalite, date_de_naissance):
[Link] = matricule
[Link] = nom
[Link] = prenom
[Link] = nationalite
self.date_de_naissance = date_de_naissance
def afficher_informations(self):
print("Matricule:", [Link])
print("Nom:", [Link])
print("Prénom:", [Link])
print("Nationalité:", [Link])
print("Date de naissance:", self.date_de_naissance)
print("Statut: Étudiant")
class Employe(IPersonne):
def __init__(self, matricule, nom, prenom, nationalite, date_de_naissance, service,
categorie):
[Link] = matricule
[Link] = nom
[Link] = prenom
[Link] = nationalite
self.date_de_naissance = date_de_naissance
[Link] = service
[Link] = categorie
def afficher_informations(self):
print("Matricule:", [Link])
print("Nom:", [Link])
print("Prénom:", [Link])
print("Nationalité:", [Link])
print("Date de naissance:", self.date_de_naissance)
print("Service:", [Link])
print("Catégorie:", [Link])
print("Statut: Employé")
# Exemple d'utilisation
enseignant = Enseignant(matricule="123", nom="MATY", prenom="Maman",
salaire=300000, nationalite="Nigérienne", date_de_naissance="01/01/1971")
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 23
Introduction à la Programmation Orientée Objet(POO) en Python
enseignant.afficher_informations()
print("\n")
etudiant.afficher_informations()
print("\n")
employe.afficher_informations()
16. Implémentation
class IPersonne(ABC):
@abstractmethod
def afficher_informations(self):
pass
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 24
Introduction à la Programmation Orientée Objet(POO) en Python
class Enseignant(IPersonne):
def __init__(self, matricule, nom, prenom, salaire, nationalite, date_de_naissance):
[Link] = matricule
[Link] = nom
[Link] = prenom
[Link] = salaire
[Link] = nationalite
self.date_de_naissance = date_de_naissance
def afficher_informations(self):
print("Matricule:", [Link])
print("Nom:", [Link])
print("Prénom:", [Link])
print("Salaire:", [Link])
print("Nationalité:", [Link])
print("Date de naissance:", self.date_de_naissance)
print("Statut: Enseignant")
# Exemple d'utilisation
enseignant = Enseignant(matricule="123", nom="MATY", prenom="Maman", salaire=300000,
nationalite="Nigérienne", date_de_naissance="01/01/1971")
enseignant.afficher_informations()
enseignant.augmenter_salaire(500)
class Etudiant(IPersonne):
def __init__(self, matricule, nom, prenom, nationalite, date_de_naissance):
[Link] = matricule
[Link] = nom
[Link] = prenom
[Link] = nationalite
self.date_de_naissance = date_de_naissance
def afficher_informations(self):
print("Matricule:", [Link])
print("Nom:", [Link])
print("Prénom:", [Link])
print("Nationalité:", [Link])
print("Date de naissance:", self.date_de_naissance)
print("Statut: Étudiant")
# Exemple d'utilisation
etudiant = Etudiant(matricule="456", nom="MAMAN MATY", prenom="Faridah",
nationalite="Gabonaise", date_de_naissance="12/09/2001")
etudiant.afficher_informations()
etudiant.inscription_cours("Mathématiques")
class Employe(IPersonne):
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 25
Introduction à la Programmation Orientée Objet(POO) en Python
def afficher_informations(self):
print("Matricule:", [Link])
print("Nom:", [Link])
print("Prénom:", [Link])
print("Nationalité:", [Link])
print("Date de naissance:", self.date_de_naissance)
print("Service:", [Link])
print("Catégorie:", [Link])
print("Statut: Employé")
# Exemple d'utilisation
employe = Employe(matricule="789", nom="OSSENE", prenom="Raoul", nationalite="Gabonaise",
date_de_naissance="10/10/1985", service="RH", categorie="Cadre")
employe.afficher_informations()
[Link]("Senior")
Réalisé par MATY Maman Enseignant Permanent à l’Institut Africain d’Informatique Page : 26