Initial commit
This commit is contained in:
92
source/07-objects/inheritance/simple.py
Normal file
92
source/07-objects/inheritance/simple.py
Normal file
@ -0,0 +1,92 @@
|
||||
|
||||
class Person(object):
|
||||
"""
|
||||
Classe représentant une personne.
|
||||
|
||||
"""
|
||||
nom: str = None
|
||||
prenom: str = None
|
||||
age: int = None
|
||||
|
||||
def __init__(self, *_args, **kwargs):
|
||||
"""
|
||||
Initialiser les valeurs d'une nouvelle personne.
|
||||
|
||||
Args:
|
||||
*_args: Liste d'arguments non positionnels
|
||||
**kwargs: Arguments nommés, utilisés pour initialiser les attributs de notre objet.
|
||||
|
||||
"""
|
||||
self.nom = kwargs.get("nom", None)
|
||||
self.prenom = kwargs.get("prenom", None)
|
||||
self.age = kwargs.get("age", None)
|
||||
|
||||
def set_nom_complet(self, nom, prenom):
|
||||
"""
|
||||
Méthode pour définir les noms et prénom de l'individu.
|
||||
|
||||
Args:
|
||||
nom: Nom de famille à attribuer
|
||||
prenom: Prénom à attribuer à l'objet
|
||||
|
||||
"""
|
||||
self.prenom = prenom
|
||||
self.nom = nom
|
||||
|
||||
def get_nom_complet(self):
|
||||
"""
|
||||
Méthode pour retrouver d'un coup le nom complet de l'individu.
|
||||
|
||||
Returns:
|
||||
Nom complet, sous la forme "<prenom> <nom>"
|
||||
|
||||
"""
|
||||
if self.prenom and self.nom:
|
||||
return f"{self.prenom} {self.nom}"
|
||||
else:
|
||||
return "Nom complet non renseigné"
|
||||
|
||||
|
||||
class Professional(Person):
|
||||
"""
|
||||
Classe représentant un professionel, héritant de `Person`.
|
||||
|
||||
"""
|
||||
telephone_pro: str = None
|
||||
job: str = None
|
||||
|
||||
def __init__(self, *_args, **kwargs):
|
||||
"""
|
||||
Initialiser les données d'un nouveau professionel.
|
||||
|
||||
On peut également initialiser le prénom, nom et âge.
|
||||
|
||||
Args:
|
||||
*_args: Liste d'arguments non positionnels
|
||||
**kwargs: Liste d'arguments nommés, utilisés pour initialiser les attributs de notre objet.
|
||||
|
||||
"""
|
||||
super().__init__(*_args, **kwargs)
|
||||
self.telephone_pro = kwargs.get("telephone_pro", None)
|
||||
self.job = kwargs.get("job", None)
|
||||
|
||||
def get_nom_complet(self):
|
||||
"""
|
||||
Méthode pour retrouver d'un coup le nom complet de l'individu.
|
||||
|
||||
Returns:
|
||||
Nom complet, sous la forme "<prenom> <nom>"
|
||||
|
||||
"""
|
||||
base_nom = super().get_nom_complet()
|
||||
return f"{base_nom} ({self.job})"
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# Ici on se crée plusieurs objets, 2 professionnels et une personne
|
||||
pro1 = Professional(nom="Mario", prenom="Mario", age=38, telephone_pro="0799999999", job="Jardinier")
|
||||
pro2 = Professional(nom="Mario", prenom="Luigi", age=37, telephone_pro="0799999999", job="Plombier")
|
||||
mec = Person(nom="Bertrand", prenom="Julien", age=30)
|
||||
# Les deux classe Person et Professional ont des méthodes `get_nom_complet()` différentes, tester
|
||||
print(mec.get_nom_complet())
|
||||
print(pro1.get_nom_complet())
|
Reference in New Issue
Block a user