0% ont trouvé ce document utile (0 vote)
4 vues5 pages

Python Proprietes

Le document présente les propriétés en Python, qui permettent d'encapsuler des attributs tout en offrant une interface simple à l'utilisateur. Il décrit deux syntaxes pour déclarer des propriétés, l'une utilisant la fonction property() et l'autre utilisant des décorateurs. L'objectif est de simplifier l'utilisation des objets tout en préservant l'encapsulation et en respectant le principe pythonique de confiance envers l'utilisateur.

Transféré par

Abdul Jalil Sana
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
4 vues5 pages

Python Proprietes

Le document présente les propriétés en Python, qui permettent d'encapsuler des attributs tout en offrant une interface simple à l'utilisateur. Il décrit deux syntaxes pour déclarer des propriétés, l'une utilisant la fonction property() et l'autre utilisant des décorateurs. L'objectif est de simplifier l'utilisation des objets tout en préservant l'encapsulation et en respectant le principe pythonique de confiance envers l'utilisateur.

Transféré par

Abdul Jalil Sana
Copyright
© All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Python

Les propriétés

Nicolas Delestre

Les propriétés - v1.2 1/5


Contexte
Getter, setter, pas très pythonic
Les setter et getter permettent l’encapsulation :
séparer la façon dont est conçue la classe de la façon dont sont utilisés les objets (pouvoir
modifier la conception tout en ayant la même façon de les utiliser)
vérifier que l’utilisation est bonne (et levée des exceptions si besoin)
Mais pas très pythonic (faire confiance à l’utilisateur)

Les propriétés (properties)


faire croire à l’utilisateur qu’il accède directement aux attributs
être pythonic tout en préservant l’encapsulation

>>> pt = Point2D(1,2) >>> pt = Point2D(1,2)


>>> pt.get_x() ⇒ >>> pt.x
1 1
>>> pt.set_x(3) >>> pt.x = 3

Les propriétés - v1.2 2/5


Comment déclarer une propriété ?

Première syntaxe
attr = property(getter[, setter[, deleter,[ doc]]])

Mise à jour de la classe Point2D du module [Link]


5 class Point2D:
6 def __init__(self, x, y, identifiant=None):
7 self._x = x
8 self._y = y
9 self._id = identifiant
10
11 def _get_x(self):
12 return self._x
13
14 def _set_x(self, x):
15 self._x = x
16
17 x = property(_get_x, _set_x, doc="l’abscisse du point 2D")

Les propriétés - v1.2 3/5


Comment déclarer une propriété ?
Seconde syntaxe (utilisation des décorateurs)
@property
def attr(self):
...
@[Link] Attention
def attr(self, valeur): Ce n’est pas de la surcharge syntaxique
...
@[Link] (cf. cours sur les décorateurs)
def attr(self):
...

Mise à jour de la classe Point2D du module [Link] (suite)


19 @property 28 @property
20 def y(self): 29 def id(self):
21 return self._y 30 return self._id
22
23 @[Link]
24 def y(self, y):
25 self._y = y

Les propriétés - v1.2 4/5


Conclusion

Nous avons dans ce cours


L’objectif des propriétés en python ?
Les deux syntaxes de déclaration des propriétés

Principe général de python


Le concepteur/développeur d’une API écrit plus de code pour simplifier la vie de l’utilisateur

Les propriétés - v1.2 5/5

Vous aimerez peut-être aussi