Fonction property() – Python

La fonction property() est utilisée pour définir les propriétés dans une classe Python.

Considérez le script Python suivant qui définit la classe Person comme ayant les méthodes getter et setter. La méthode getAge() renvoie la valeur de l’attribut privée __age, tandis que la méthode setAge() affecte la valeur à l’attribut __age.
 

class Person:
    def __init__(self, age=25):
        self.__age = age
		
    def setAge(self, age):
        self.__age = age
		
    def getAge(self):
        return self.__age
		
p = Person()
age = p.getAge()
print(age)     # cela affiche 25

p.setAge(40)
age = p.getAge()
print(age)     # cela affiche 40

Comme vous pouvez le voir ci-dessus, la méthode p.getAge() renvoie la valeur de l’attribut __age et la méthode setAge() lui attribue une valeur. Cependant, ce serait bien si les fonctions getter et setter étaient appelées implicitement lorsque nous accédions à un attribut. C’est là que la fonction intégrée property() de Python est utile.

La méthode property() prend les méthodes get, set et delete comme arguments et renvoie un objet de la classe property.
 

Syntaxe:
property(fget, fset, fdel, doc)

 

Paramètres:
  • fget() : utilisé pour récupérer la valeur de l’attribut
  • fset() : utilisé pour définir la valeur de l’attribut
  • fdel() : utilisé pour supprimer la valeur d’attribut
  • doc() : chaîne contenant la documentation (docstring) de l’attribut

 
 

Valeur de retour:

La méthode property() retourne l’attribut de property du getter, setter et deleter donné.
 

Exemple:

L’exemple suivant montre comment créer une property en Python à l’aide de la fonction property().

class Person:
    def __init__(self):
        self.__age = ''
		
    def setAge(self, age):
        self.__age = age
		
    def getAge(self):
        return self.__age
		
    age = property(getAge, setAge)
		
p = person()
p.age = 40
print(p.age)

Sortie:

40

Comme vous pouvez le voir ci-dessus, la méthode getAge() est appelée automatiquement lorsque nous accédons à la propriété age. De la même manière, la méthode setAge est appelée lorsque nous attribuons une valeur à la propriété age. Il masque également l’attribut d’instance __age.
 
 
De la même manière, vous pouvez spécifier une méthode deleter pour la propriété, comme indiqué dans le script ci-dessous.

class Person:
    def __init__(self):
        self.__age = ''
		
    def setAge(self, age):
        self.__age = age
		
    def getAge(self):
        return self.__age

    def delAge(self):
        del self.__age
		
    age = property(getAge, setAge, delAge)

La fonction delAge() serait invoquée lorsque vous supprimez la propriété age.

del p.age

Le decorator @property facilite la déclaration d’une property au lieu d’appeler la fonction property(). Nous allons découvrir cela dans le chapitre suivant.
 
QCM Python

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *