Présentation de l'encapsulation en Python

L'encapsulation est l'un des quatre concepts fondamentaux de la programmation orientée objet. Lorsqu'il est nécessaire de regrouper les données, et ses sous-programmes ultérieurs qui collaborent et fonctionnent en un seul endroit, ainsi que la nécessité de cacher les détails complexes à l'utilisateur, nous utilisons l'encapsulation pour comprendre `` Encapsulation en Python '', nous devons approfondir et comprendre comment l'encapsulation apparaît dans l'image dans un langage de programmation. L'encapsulation aide à restreindre l'accès aux méthodes et aux variables. Empêcher toute modification accidentelle des données, et ceci est réalisé en utilisant les méthodes Variable d'instance non publique et Variable d'instance non publique. La classe encapsule les méthodes et les variables.

Nom Mangling en Python

Python implique une restriction sur l'accès aux données. Il n'y a pas de modificateurs d'accès explicites mais l'accès peut être contrôlé via Name Mangling en Python. Par défaut, toutes les méthodes et variables sont publiques en Python. Donc, si un identifiant a deux soulignements principaux, il devient une instance non publique en Python. Nous spécifierions ici des variables et des méthodes d'instance non publiques pour mieux comprendre l'encapsulation. La portée de la méthode d'instance non publique est uniquement dans sa propre classe, et elle commence par un trait de soulignement ou deux traits de soulignement, c'est-à-dire un double «_» ou «__» avant une variable ou une méthode. La portée d'une variable d'instance non publique se trouve également dans sa propre classe ou par la méthode dans laquelle elle est définie et elle commence également par deux traits de soulignement. S'il nous arrive de manquer les deux soulignements, cette méthode est considérée comme une méthode publique. Avant de comprendre l'encapsulation en Python, nous devons comprendre le fonctionnement des variables et des méthodes d'instances publiques et non publiques.

Variables d'instance non publiques

En Python, il n'y a pas de terme aussi «privé» car aucun attribut n'est vraiment privé en Python (nous discuterons de l'alternative sous-jacente plus loin dans l'article). Au lieu de cela, nous les référons comme variable d'instance non publique. C'est ainsi que nous ferions référence aux variables privées et aux méthodes privées.

Voici un petit extrait du code en python pour les variables d'instance non publiques:

Nous utilisons le mot-clé self parce que nous accédons à la variable de classe. La sortie est:

Pour récupérer une confirmation sur la portée de la variable d'instance non publique, nous ajoutons l'impression (abc .__ a) au code:

Et la sortie retournée est:

Ainsi, nous voyons que nous ne pouvons pas utiliser de variables d'instance non publiques en dehors de la classe.

Méthodes d'instances non publiques

Une fonction d'instance non publique ne peut pas être appelée directement sur l'objet, mais uniquement au sein de la classe.

Dans cet extrait de code, nous avons deux méthodes, une instance non publique et une autre méthode publique. La méthode publique est facilement appelée en créant un objet de la classe abc, puis sa sortie est imprimée.

Lorsqu'une approche similaire est essayée pour la méthode d'instance non publique, nous sommes confrontés à l'erreur suivante:

Ce programme produira les résultats suivants:

Par conséquent, il n'est pas possible d'accéder à une méthode d'instance non publique par création d'objet. Pour accéder à la méthode d'instance non publique, nous pouvons appeler la méthode __show1 () à partir de la méthode show2 () de la même classe. Voici comment afficher la méthode d'instance non publique à partir de la méthode publique de la même classe.

Production:

Ainsi, la méthode d'instance non publique ne peut pas être appelée en dehors de sa classe.

La manière indirecte d'accéder à la variable d'instance non publique

Pour des raisons légitimes, les variables d'instance non publiques ne sont pas accessibles au-delà de la classe, mais il existe un moyen indirect de modifier la valeur de la variable d'instance non publique et d'accéder à l'aide d'objets. Nous allons jeter un œil à l'extrait de code ci-dessous:

Production:

Dans le programme ci-dessus, nous avons des méthodes publiques getNumber (self, num) et displayNumber () et une variable d'instance non publique. Lors de l'appel de la première méthode, nous attribuons la valeur à la variable d'instance non publique, qui est appelée dans la méthode displayNumber ().

La méthode setter est utilisée pour définir la valeur de la variable d'instance non publique. Cela est utile dans les scénarios lorsque vous souhaitez modifier la valeur d'une variable d'instance non publique après la création d'objets pour une variable spécifique.

Avantages de l'encapsulation en Python

L'encapsulation aide à établir un meilleur flux de données, ainsi que la protection des données. Le concept d'encapsulation rend le code autosuffisant. L'encapsulation fournit une grande aide au niveau de la mise en œuvre car elle se concentre principalement sur la question «comment» laisser le complexe «quand / où» et ses complexités derrière. Masquer les données dans une unité facilite l'encapsulation et sécurise également les données.

Pourquoi avons-nous besoin de l'encapsulation en Python?

Vous trouverez ci-dessous plusieurs raisons pour lesquelles les développeurs trouveraient le concept d'encapsulation à portée de main et pourquoi les concepts orientés objet dominent dans la plupart des langages de programmation qui s'exécutent dans le scénario actuel.

  • Il existe un besoin d'interaction bien définie dans chaque application, les encapsulations aident à y parvenir.
  • Le concept de programmation d'orientation des objets en python se concentre sur la création de code réutilisable. Ceci est également abrégé en SEC (ne vous répétez pas).
  • La maintenance de l'application est plus facile et la sécurité est assurée.
  • La clarté sur la procédure de codage en tant que développeurs doit être préoccupée par l'objectif de la classe et les complexités sont traitées systématiquement.
  • Une bonne organisation des codes contribue à la flexibilité du code et facilite également les tests unitaires.
  • Les utilisateurs trouvent qu'il est facile d'utiliser le système car ils sont cachés de la conception complexe impliquée au niveau du backend.
  • Le fait d'avoir toutes les données similaires en un seul endroit et encapsulées augmente la cohésion à l'intérieur d'un module.
  • Améliore la lisibilité des codes et les changements dans une partie du code ne perturbent pas les autres parties du code.
  • L'encapsulation empêche la partie du code d'être accédée par accident, mais pas intentionnellement car les objets contiennent des données critiques pour les applications et elles doivent être modifiées n'importe où dans le code.

Conclusion - Encapsulation en Python

En termes plus simples, l'encapsulation en Python signifie que la représentation interne d'un objet est généralement cachée à la vue en dehors de la définition de l'objet. Cela aide le développeur à développer une expérience conviviale pour l'utilisateur final et il y a une protection contre les failles de sécurité lorsque les codes sont sécurisés.

Articles recommandés

Ceci est un guide d'encapsulation en Python. Nous discutons ici des besoins d'encapsulation en python avec ses variables d'instance non publiques et ses méthodes d'instance. Vous pouvez également consulter les articles suivants pour en savoir plus -

  1. Qu'est-ce que Python
  2. Est orienté objet Python
  3. Patterns en Python
  4. Comment utiliser l'encapsulation en C ++?
  5. Encapsulation en Java | Exemples
  6. Encapsulation en C (fonctionnement, exemples)
  7. Introduction à l'encapsulation en JavaScript