Python orienté objet - Introduction

Les langages de programmation émergent constamment, de même que les différentes méthodologies. La programmation orientée objet est l'une de ces méthodes qui est devenue très populaire ces dernières années.

Ce chapitre décrit les fonctionnalités du langage de programmation Python qui en font un langage de programmation orienté objet.

Schéma de classification de la programmation linguistique

Python peut être caractérisé sous des méthodologies de programmation orientées objet. L'image suivante montre les caractéristiques de divers langages de programmation. Observez les fonctionnalités de Python qui le rendent orienté objet.

Cours de langue Catégories Langues
Paradigme de programmation De procédure C, C ++, C #, Objective-C, java, Go
Scripting CoffeeScript, JavaScript, Python, Perl, Php, Ruby
Fonctionnel Clojure, Eralang, Haskell, Scala
Classe de compilation Statique C, C ++, C #, Objective-C, java, Go, Haskell, Scala
Dynamique CoffeeScript, JavaScript, Python, Perl, Php, Ruby, Clojure, Erlang
Classe de type Fort C #, java, Go, Python, Ruby, Clojure, Erlang, Haskell, Scala
Faible C, C ++, C #, Objective-C, CoffeeScript, JavaScript, Perl, Php
Classe de mémoire Géré Autres
Non géré C, C ++, C #, Objective-C

Qu'est-ce que la programmation orientée objet?

Object Orientedsignifie dirigé vers des objets. En d'autres termes, cela signifie fonctionnellement orienté vers la modélisation d'objets. C'est l'une des nombreuses techniques utilisées pour modéliser des systèmes complexes en décrivant une collection d'objets en interaction via leurs données et leur comportement.

Python, une programmation orientée objet (POO), est un moyen de programmation qui se concentre sur l'utilisation d'objets et de classes pour concevoir et créer des applications. Les principaux piliers de la programmation orientée objet (POO) sont Inheritance, Polymorphism, Abstraction, un d Encapsulation.

L'analyse orientée objet (OOA) est le processus qui consiste à examiner un problème, un système ou une tâche et à identifier les objets et les interactions entre eux.

Pourquoi choisir la programmation orientée objet?

Python a été conçu avec une approche orientée objet. La POO offre les avantages suivants -

  • Fournit une structure de programme claire, ce qui facilite la cartographie des problèmes du monde réel et de leurs solutions.

  • Facilite la maintenance et la modification faciles du code existant.

  • Améliore la modularité du programme car chaque objet existe indépendamment et de nouvelles fonctionnalités peuvent être ajoutées facilement sans perturber celles existantes.

  • Présente un bon cadre pour les bibliothèques de code où les composants fournis peuvent être facilement adaptés et modifiés par le programmeur.

  • Donne la réutilisabilité du code

Programmation procédurale ou orientée objet

La programmation procédurale est dérivée de la programmation structurelle basée sur les concepts de functions/procedure/routines. Il est facile d'accéder et de modifier les données dans la programmation orientée procédurale. D'autre part, la programmation orientée objet (POO) permet la décomposition d'un problème en un certain nombre d'unités appeléesobjectspuis créez les données et les fonctions autour de ces objets. Il met davantage l'accent sur les données que sur la procédure ou les fonctions. Toujours dans la POO, les données sont masquées et ne sont pas accessibles par une procédure externe.

Le tableau de l'image suivante montre les principales différences entre les approches POP et POO.

Différence entre la programmation orientée procédure (POP) vs. Programmation orientée objet (POO).

Programmation orientée procédure Programmation orientée objet
Basé sur Dans Pop, tout se concentre sur les données et les fonctions Oops est basé sur un scénario du monde réel.Le programme entier est divisé en petites parties appelées objet
Réutilisabilité Réutilisation du code limité Réutilisation du code
Approche Approche descendante Conception orientée objet
Accéder aux prescripteurs Aucun Public, privé et protégé
Mouvement de données Les données peuvent passer librement des fonctions aux fonctions du système Dans Oups, les données peuvent se déplacer et communiquer entre elles via les fonctions membres
Accès aux données Dans pop, la plupart des fonctions utilisent des données globales pour le partage qui sont accessibles librement d'une fonction à l'autre dans le système Dans Oups, les données ne peuvent pas se déplacer librement d'une méthode à l'autre, elles peuvent être conservées en public ou en privé afin que nous puissions contrôler l'accès aux données
Masquage des données En pop, façon si spécifique de masquer les données, donc un peu moins sécurisée Il fournit un masquage des données, tellement plus sécurisé
Surcharge Pas possible Fonctions et surcharge de l'opérateur
Exemple-Langues C, VB, Fortran, Pascal C ++, Python, Java, C #
Abstraction Utilise l'abstraction au niveau de la procédure Utilise l'abstraction au niveau de la classe et de l'objet

Principes de la programmation orientée objet

La programmation orientée objet (POO) est basée sur le concept de objects plutôt que des actions, et dataplutôt que logique. Pour qu'un langage de programmation soit orienté objet, il doit avoir un mécanisme permettant de travailler avec des classes et des objets ainsi que la mise en œuvre et l'utilisation des principes et concepts fondamentaux orientés objet, à savoir l'héritage, l'abstraction, l'encapsulation et le polymorphisme.

Laissez-nous comprendre chacun des piliers de la programmation orientée objet en bref -

Encapsulation

Cette propriété masque les détails inutiles et facilite la gestion de la structure du programme. L'implémentation et l'état de chaque objet sont cachés derrière des limites bien définies et qui fournissent une interface claire et simple pour travailler avec eux. Une façon d'y parvenir est de rendre les données privées.

Héritage

L'héritage, également appelé généralisation, nous permet de capturer une relation hiérarchique entre classes et objets. Par exemple, un «fruit» est une généralisation de «orange». L'héritage est très utile du point de vue de la réutilisation du code.

Abstraction

Cette propriété nous permet de masquer les détails et d'exposer uniquement les caractéristiques essentielles d'un concept ou d'un objet. Par exemple, une personne conduisant un scooter sait qu'en appuyant sur un klaxon, un son est émis, mais il n'a aucune idée de la façon dont le son est réellement généré en appuyant sur le klaxon.

Polymorphisme

Le poly-morphisme signifie plusieurs formes. Autrement dit, une chose ou une action est présente sous différentes formes ou manières. Un bon exemple de polymorphisme est la surcharge des constructeurs dans les classes.

Python orienté objet

Le cœur de la programmation Python est object et OOP, cependant vous n'avez pas besoin de vous limiter à utiliser la POO en organisant votre code en classes. La POO ajoute à toute la philosophie de conception de Python et encourage une manière propre et pragmatique de programmer. La POO permet également d'écrire des programmes plus volumineux et complexes.

Modules vs classes et objets

Les modules sont comme des «dictionnaires»

Lorsque vous travaillez sur des modules, notez les points suivants -

  • Un module Python est un package pour encapsuler du code réutilisable.

  • Les modules résident dans un dossier avec un __init__.py fichier dessus.

  • Les modules contiennent des fonctions et des classes.

  • Les modules sont importés à l'aide du import mot-clé.

Rappelez-vous qu'un dictionnaire est un key-valuepaire. Cela signifie que si vous avez un dictionnaire avec une cléEmployeID et vous voulez le récupérer, vous devrez alors utiliser les lignes de code suivantes -

employee = {“EmployeID”: “Employee Unique Identity!”}
print (employee [‘EmployeID])

Vous devrez travailler sur des modules avec le processus suivant -

  • Un module est un fichier Python contenant des fonctions ou des variables.

  • Importez le fichier dont vous avez besoin.

  • Maintenant, vous pouvez accéder aux fonctions ou variables de ce module avec le '.' (dot) Opérateur.

Considérez un module nommé employee.py avec une fonction appelée employee. Le code de la fonction est donné ci-dessous -

# this goes in employee.py
def EmployeID():
   print (“Employee Unique Identity!”)

Importez maintenant le module puis accédez à la fonction EmployeID -

import employee
employee. EmployeID()

Vous pouvez y insérer une variable nommée Age, comme indiqué -

def EmployeID():
   print (“Employee Unique Identity!”)
# just a variable
Age = “Employee age is **”

Maintenant, accédez à cette variable de la manière suivante -

import employee
employee.EmployeID()
print(employee.Age)

Maintenant, comparons cela au dictionnaire -

Employee[‘EmployeID’] # get EmployeID from employee
Employee.employeID() # get employeID from the module
Employee.Age # get access to variable

Notez qu'il existe un modèle commun en Python -

  • Prenez un key = value conteneur de style

  • Obtenez quelque chose par le nom de la clé

Lors de la comparaison d'un module avec un dictionnaire, les deux sont similaires, sauf avec ce qui suit -

  • Dans le cas du dictionary, la clé est une chaîne et la syntaxe est [clé].

  • Dans le cas du module, la clé est un identifiant et la syntaxe est .key.

Les classes sont comme des modules

Module est un dictionnaire spécialisé qui peut stocker du code Python afin que vous puissiez y accéder avec le '.' Opérateur. Une classe est un moyen de prendre un regroupement de fonctions et de données et de les placer dans un conteneur afin que vous puissiez y accéder avec l'opérateur '.'.

Si vous devez créer une classe similaire au module employé, vous pouvez le faire en utilisant le code suivant -

class employee(object):
   def __init__(self):
      self. Age = “Employee Age is ##”
   def EmployeID(self):
      print (“This is just employee unique identity”)

Note- Les classes sont préférées aux modules car vous pouvez les réutiliser telles quelles et sans trop d'interférences. Alors qu'avec les modules, vous n'en avez qu'un avec l'ensemble du programme.

Les objets sont comme des mini-importations

Une classe est comme un mini-module et vous pouvez importer de la même manière que vous le faites pour les classes, en utilisant le concept appelé instantiate. Notez que lorsque vous instanciez une classe, vous obtenez unobject.

Vous pouvez instancier un objet, comme pour appeler une classe comme une fonction, comme indiqué -

this_obj = employee() # Instantiatethis_obj.EmployeID() # get EmployeId from the class
print(this_obj.Age) # get variable Age

Vous pouvez le faire de l'une des trois manières suivantes -

# dictionary style
Employee[‘EmployeID’]
# module style
Employee.EmployeID()
Print(employee.Age)
# Class style
this_obj = employee()
this_obj.employeID()
Print(this_obj.Age)