Dans les langages de programmation orienté objet ( POO) tels que Python , les classes et les objets font partie intégrante de la façon dont les données sont représentées . L'un des principes fondamentaux de la programmation orientée objet est l'intégrité des données et la sécurité des données. Ceci est très important pour un langage comme Python qui existe dans une grande variété de logiciels sur et hors du Web. Une façon de maintenir l'intégrité des données est de contrôler comment les données d' objet interagit avec les utilisateurs. La « propriété ()" fonction en Python est là pour ça . Classes et objets en Python
Parce que Python est un langage orienté objet , les programmeurs Python peuvent créer des sortes spéciales de types de données en créant des «classes ». Les classes sont des plans qui définissent la structure interne et le comportement d'un objet. Après avoir écrit une classe, un programmeur peut " instancier " (ou créer une instance d' ) un objet. L'exemple suivant montre une classe de base et une instanciation d'un objet de la classe
>>> classe de base: . //Nom de la classe
. . . def __ init__ ( self): //fonction d'initialisation appelé implicitement lorsque l'objet est instancié
. . . self.x = 4 //data membre
local. . . def write () : méthode //membre
. . . print " Bonjour "
>>> f = Basic () //f représente maintenant un objet "Basic"
Protection des données
Tout objet créé à partir de la classe "Basic" contient un élément de données «x» qui contiendra l'entier 4. Un programmateur de marche avec un objet de base peut accéder aux données dans x par le " . " opérateur , comme dans cet exemple :
>>> fx
4
Toutefois , l'utilisateur peut modifier cette valeur à tout moment , tout comme avec n'importe quel autre variable. Cela pourrait ne pas être souhaitable dans tous les cas , une classe peut contenir des données importantes que les utilisateurs ne devraient pas changer . Dans ce cas , les membres de données en Python ont une convention de nommage de mettre deux caractères de soulignement avant le nom du membre afin d' empêcher un utilisateur de changer :
>>> classe de base:
< p> . . . def __ init__ (self )
. . . self.__x = 4 //Données privées membre
accesseurs et de mutateurs
Cette dissimulation de données contre l'accès est parfois décrit comme " encapsulation ". Les données cachées de l'accès des utilisateurs pourraient avoir besoin manipulation occasionnelle, comme dans les cas où un utilisateur peut modifier les informations de classe , mais seulement dans certains paramètres. Dans ce cas , le programmeur comprend « fonceurs » et les « faiseurs », qui renvoient la valeur et définir la valeur , respectivement. Absorbantes retourner simplement une valeur et setters modifier la valeur , tout en maintenant l'intégrité des données. L'exemple suivant montre échantillon fonctions get et set dans une classe Python :
classe >>> base:
. . . def __ init__ ( SEF) :
. . . self.__x = 4
. . . def getX (self):
. . . retourner self.__x
. . . def setX (self, newX ) :
. . . si newX > = 0:
. . . soi . __x = newX
La « propriété () " Méthode Méthode
Certains utilisateurs considèrent qu'il est lourd pour les utilisateurs d'avoir à accéder à la " f.getx ()" pour chaque par exemple les données sont nécessaires . La syntaxe " f.x " est généralement plus commode. La méthode de «bien » fait exactement cela: il permet au programmeur de définir les méthodes get et set (avec d'autres ) et les lier à la syntaxe simple. Prenant la classe de base à titre d'exemple , la méthode de «bien » simplifiera l'accès des utilisateurs aux données de base :
. . . def GetX (self):
. . . retourner self.__x
. . . def setx (self, newX ) :
. . . si newX > = 0:
. . . self.__x = newX
. . . propriété (se , setx ) //maintenant, les utilisateurs peuvent obtenir la valeur de x __ avec fx , et le mettre avec fx = i