Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Les 22 & 23 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !

La programmation orientée objet avec Python

Programmation orientée objet avec Python

L’application des notions orientées objet lorsque nous programmons avec Python n’est pas obligatoire, surtout lorsqu’on débute avec ce langage. Cependant, souvent, ceux qui essayent la programmation orientée objet ont du mal à s’en passer après ! Cette section propose d’aborder les principes fondamentaux de la programmation orientée objet avec Python.

1. Pourquoi la programmation orientée objet ?

La programmation orientée objet est avant tout une manière de concevoir les programmes informatiques. La principale différence entre la programmation orientée objet et la programmation procédurale réside essentiellement dans l’organisation du code source. Cette différence organisationnelle procure plusieurs avantages à la programmation orientée objet.

Parmi ces avantages, nous pouvons citer les suivants :

  • L’extensibilité : une application développée avec les concepts objet peut être étendue plus facilement. En effet, l’ajout de nouvelles fonctionnalités à une application est généralement basé sur des objets déjà existants pour lesquels il suffirait d’ajouter de nouvelles compétences. Avec le concept de l’héritage, qui est inhérent à la programmation orientée objet, nous pouvons facilement créer de nouveaux types d’objets en nous basant sur les classes déjà existantes.

  • La réutilisabilité : une fois qu’une classe est définie, elle peut être adaptée pour créer une tout autre nouvelle classe, ce qui permet dans certains cas un gain de temps important.

  • L’abstraction : la conception orientée objet permet un niveau d’abstraction élevé tout en restant le plus fidèle possible à la réalité. Il est d’usage de concevoir des classes abstraites et des interfaces afin de définir non pas des objets concrets dotés d’un comportement définitif, mais plutôt afin de définir le comportement que devrait avoir une certaine catégorie d’objets.

  • Facilité de la maintenance : un programme orienté objet est plus facile à...

Les modules

Les modules sont tout simplement des fichiers contenant du code Python et qui nous permettent de mieux structurer nos programmes. En effet, les modules permettent une meilleure organisation du code en répartissant les fonctions et les classes et toute autre partie de nos codes sources de manière cohérente dans différents fichiers.  

Il existe principalement les deux catégories de modules suivantes :

1.

Les modules standards, qui ne font pas partie directement du langage Python mais qui sont automatiquement installés et intégrés au moment de l’installation de l’interpréteur Python comme, par exemple, les modules random et re que nous avons eu l’occasion d’utiliser dans ce livre.

2.

Les modules externes, qui, eux, sont développés par d’autres développeurs, dont nous-mêmes, et que nous devons importer dans nos programmes afin de les utiliser. Nous pouvons distinguer les deux types de modules externes suivants :

  • Les modules externes développés par un éditeur tiers que nous devons installer dans nos environnements de travail avant de les utiliser, comme par exemple certains des modules que nous avons utilisés dans ce livre tels que Pandas, NumPy, sklearn ou TensorFlow.

  • Les modules externes que nous développons nous-mêmes afin de pouvoir les utiliser dans nos différents projets.

1. Importer des modules

Dans ce livre, nous avons déjà eu l’occasion de voir comment utiliser des modules standards et des modules externes développés par un tiers. L’exemple de code suivant montre comment créer et utiliser son propre module (voir le code des deux fichiers Book_Module.py et main_1.py du dossier Module de cette annexe).

Dans le fichier Book_Module.py, nous avons commencé par l’affichage du message Import du module Book_Module, puis nous avons défini la classe Book et nous avons également défini la fonction just_function. Remarquez que cette fonction n’est pas définie dans la classe Book !

print("\nImpor du module Book_Module\n") 
 
class Book:  
   def __init__(self, title, author, year, nbPages, language): 
       self.title = title 
       self.author = author 
 ...

Pour aller plus loin avec Python

Il y a encore tellement de choses à dire sur le langage Python ! Cependant, les concepts vus dans les chapitres Le langage Python, La bibliothèque NumPy et La bibliothèque Pandas et ceux vus dans cette annexe devraient être largement suffisants pour être opérationnel avec ce langage. De manière générale, les notions étudiées dans ce livre par rapport au langage Python devraient permettre de comprendre plus ou moins facilement les autres notions qui n’ont pas été abordées.

Ainsi, pour aller plus loin avec le langage Python, nous vous encourageons vivement à vous documenter sur les quelques points suivants :

  • Les Design Patterns avec Python.

  • Les bonnes pratiques de programmation Python.

  • Les conventions et styles d’écriture des codes Python.

  • Comment documenter ses programmes.

Les points évoqués ci-dessus permettent d’avoir une meilleure compréhension du langage Python, mais vont aussi vous permettre d’aborder plus sereinement les frameworks Python dédiés pour le développement de projets spécifiques comme le développement de projets web avec Django ou le développement d’applications asynchrones ou encore la programmation parallèle avec Python.