Encapsulation python

Encapsulation python

Introduction

L'encapsulation est l'un des aspects fondamentaux de la programmation orientée objet. Il permet aux programmeurs de mieux contrôler la façon dont les données circulent dans leurs programmes, et il protège ces données. L'encapsulation fait également des objets en pièces plus autosuffisantes et fonctionnelles indépendantes.

Le concept d'encapsulation s'appuie sur ce que vous avez fait dans les deux derniers guides avec des cours et des constructeurs. Les constructeurs sont généralement utilisés dans une conjonction étroite avec l'encapsulation et aident réellement à faire en sorte que l'encapsulation fonctionne de manière transparente.

Modificateurs d'accès

Avant de pouvoir profiter de l'encapsulation, vous devez comprendre comment Python restreint l'accès aux données stockées dans les variables et les méthodes.

Python a différents niveaux de restriction qui contrôlent comment les données peuvent être accessibles et d'où. Les variables et les méthodes peuvent être publiques, privées ou protégées. Ces désignations sont faites par le nombre de soulignements avant la variable ou la méthode.

Public

Chaque variable et méthode que vous avez vue jusqu'à présent à l'exception des constructeurs a été publique. Les variables et méthodes publiques peuvent être librement modifiées et fonctionner de n'importe où, à l'intérieur ou à l'extérieur de la classe. Pour créer une variable ou une méthode publique, n'utilisez aucun soulignement.

Privé

La désignation privée permet uniquement à une variable ou à une méthode d'être accessible à partir de sa propre classe ou objet. Vous ne pouvez pas modifier la valeur d'une variable privée de l'extérieur d'une classe. Les variables et méthodes privées sont précédées de deux soulignements. Jetez un œil à l'exemple ci-dessous.

__Make = 'Dodge'

Essayez d'utiliser cette classe d'avant. Définissez les variables du constructeur sur privé. Ensuite, essayez d'imprimer l'une des variables une fois qu'un objet a été instancié.

Class Car (Object): Def __init __ (self, Make = 'Ford', Model = 'Pinto', Year = '1971', Mileage = '253812', Color = 'Orange'): Self.__Make = se faire auto.__Model = Modèle de soi.__ ans = an.__mileage = self de kilométrage.__Color = Color Def Move_Forward (self, Speed): Print ("Votre% S va de l'avant à% S"% (Self.__Model, Speed)) def move_backward (self, vitesse): imprimer ("se déplaçant en arrière à% s"% vitesse) mycar = car () imprimer (myCar.__modèle) 

Vous recevrez un message d'erreur indiquant que la variable n'existe pas. C'est parce que cette variable est privée. Maintenant, essayez d'exécuter le Avance méthode.

ma voiture.Avance

Tout fonctionne bien. C'est parce que la variable est accessible par une méthode au sein de la classe, pas à l'extérieur.

Il y a un hic ici. Python ne gère pas exactement les variables protégées ainsi que d'autres langues orientées objet. Au lieu de protéger réellement les variables, il en modifie le nom dans l'interprète. Cela permet de créer différentes copies de la variable et exister. Essayez de changer l'une des variables protégées de votre ma voiture objet et imprimer.

ma voiture.__Model = 'Mustang' Print (MyCar.__modèle) 

Maintenant, cela semble fonctionner, mais ce que vous avez imprimé est une étrange copie de la variable protégée. Essayez d'utiliser le Avance Méthode à nouveau.

ma voiture.Avance

Il a imprimé la valeur d'origine de __modèle. Les variables existent indépendamment. Vous pouvez en outre illustrer cela en imprimant l'objet en tant que dictionnaire. Vous verrez deux variables différentes.

imprimer (mycar.__dict__)

Protégé

Les variables et les méthodes protégées sont très similaires à celles privées. Vous n'utilisez probablement pas très souvent des variables ou des méthodes protégées, mais cela vaut toujours la peine de savoir ce qu'ils sont. Une variable protégée ne peut être accessible que par sa propre classe et toutes les classes qui en dérivent. C'est plus un sujet pour plus tard, mais sachez simplement que si vous utilisez une classe comme base d'un autre, les variables protégées peuvent être une bonne option. Les variables protégées commencent par un seul soulignement.

Qu'est-ce que l'encapsulation

Alors, maintenant que vous savez comment fonctionnent les modificateurs d'accès, cette prochaine partie va sembler assez évidente. L'encapsulation est le processus d'utilisation des variables privées dans les classes pour éviter une modification involontaire ou potentiellement malveillante des données. En contenant et en protégeant les variables au sein d'une classe, il permet à la classe et aux objets qu'il crée pour fonctionner comme indépendants et autonomes, parties fonctionnant dans la machine du programme lui-même.

Grâce à des variables d'encapsulation et à certaines méthodes ne peuvent être interagies avec les interfaces désignées par la classe elle-même.

Sets et getters

Les interfaces utilisées pour interagir avec les variables encapsulées sont généralement appelées méthodes de setter et de Getter car ils sont utilisés pour définir et récupérer les valeurs des variables. Parce que les méthodes existent au sein d'une classe ou d'un objet, ils peuvent accéder et modifier des variables privées, alors que vous ne pourrez pas le faire de l'extérieur de la classe. Lorsque vous avez instancié votre ma voiture Objet, vous avez essentiellement utilisé son constructeur comme méthode de setter initiale.

Essayez d'écrire un ensemble de méthodes pour définir et obtenir la valeur de l'un des ma voiture variables.

def set_model (self, new_model): self.__Model = new_model def get_model (self): return soi.__modèle 

Cela peut sembler beaucoup de travail supplémentaire, mais ce n'est vraiment pas du tout difficile. D'une manière générale, c'est ainsi que vous devez structurer vos cours et travailler avec des variables de classe.

Réflexions de clôture

L'encapsulation est une partie importante de la programmation orientée objet. C'est une grande partie de ce qui fait que les objets dans la programmation fonctionnent plus comme des objets physiques dans le monde réel. Il sert également à protéger les données stockées au sein de vos objets et fournit un contrôle et des conventions sur la façon dont vous devez gérer le flux de données dans et hors des classes.

Des exercices

  1. Faire toutes les variables dans le Voiture classe privée.
  2. Essayez d'en imprimer un de l'extérieur de la classe.
  3. Modifier le Avance Méthode pour utiliser la variable privée modèle, Et appelez ça.
  4. Créer une méthode de setter pour l'une des variables.
  5. Utilisez la méthode du secteur que vous avez créé pour modifier la valeur d'une variable.
  6. Créez une méthode Getter pour la même variable que la méthode du secteur.
  7. Utilisez votre méthode Getter pour accéder et imprimer cette variable.

Tutoriels Linux connexes:

  • Choses à installer sur Ubuntu 20.04
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Comment créer une application Tkinter à l'aide d'un objet orienté…
  • Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
  • Masterring Bash Script Loops
  • Ubuntu 20.04 astuces et choses que vous ne savez peut-être pas
  • Choses à installer sur Ubuntu 22.04
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Ubuntu 20.04 Guide
  • Bases de mathématiques informatiques: binaire, décimal, hexadécimal, octal