Python est langage de développement devenu très populaire dans le développement d’application. Nous allons continuer à avancer en regardant la notion de typage d’objets en python et comment les manipuler.
Précédent tutoriel : #12 – Classes abstraites
Ce tutoriel est également disponible en vidéo :
Typage d’objets
En Python il est possible de faire du typage d’objets pour rendre nos objets plus sécurisés dans leurs utilisations. Quand on parle de « typage », on veut dire de forcer le type de variable attendu en entrée et en sortie de méthode.
Pour donner l’indication sans créer d’erreur si le mauvais type est formulé il faut utiliser la nomenclature suivante :
- variable: type pour typer les paramètres d’entrée
- -> type pour les retour des méthodes
Voici un exemple :
class Fruit():
nom = ''
def __init__ (self, nom: str):
self.nom = nom
def retourneNom(self) -> str:
return self.nom
banane = Fruit('banane')
print(banane.retourneNom)
Afin de rendre l’indication de typage strict vous pouvez utiliser un package strict-hint qu’il faudra sur certains environnement installer par soit même. Il faudra ensuite dan vos programme importer votre package avec la ligne from strict_hint import strict et mettre l’annotation @strict sur les méthode où vous voulez imposer ce typage.
from strict_hint import strict
class Fruit():
nom = ''
@strict
def __init__ (self, nom: str):
self.nom = nom
@strict
def retourneNom(self) -> str:
return self.nom
banane = Fruit('banane')
print(banane.retourneNom)
Si str permet de forcer un passage de chaîne de caractères, vous pouvez aussi imposer des nombre entiers avec int, des nombres décimaux avec float, des booléens avec bool… Il est possible également d’imposer de fournir des listes ou des dictionnaires.
Il est également possible de forcer le passage d’un objet par le nom de sa classe.
Voici un exemple où on doit passer un objet créé à partir de la classe Couleur :
from strict_hint import strict
class Couleur():
nom = ''
class Fruit():
nom = ''
@strict
def __init__ (self, nom: str, couleur: Couleur):
self.nom = nom
self.couleur = couleur
@strict
def retourneNom(self) -> str:
return self.nom
jaune = Couleur()
banane = Fruit('banane', jaune)
print(banane.retourneNom)
Conclusion
Nous avons vu de nouvelles notions utiles sur les objets en Python qui sont indispensables à connaitre pour faire des programmes de qualité. Nous irons plus loin dès le prochain chapitre dans notre apprentissage sur le python qui proposent encore de nombreux secrets.
Prochain chapitre : #14 – manipulation des fichiers
Soyez le premier à commenter