Bonjour à tous,
Je débute dans le langage Python.
J'ai lu dans un des cours sur Python, qu'il n'y a pas d'attributs privé ou public, tout est public mais on peut quand même contrôler par exemple la modification d'un attribut à l'aide d'une propriété qui redirigera vers une méthode que l'on peut construire.
J'ai écrit cet exemple sur le modèle donné :
Quand je lance ce script, voici ce que j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 #/usr/bin/python #-*-coding:Utf-8-* class Danse8temps: """Classe d'essai définissant : - la musique - le temps qui devrait rester à 8 même si on essaie de le modifier à l'extérieur de la classe""" def __init__(self,musique): self.musique=musique self._temps=8 def _get_temps(self): print "Accesseur" print "Musique à {} temps.".format(self._temps) return self._temps def _set_temps(self,nouveau_temps): print "Mutateur" print "Impossible de changer {} à {} temps.".format(self.musique,nouveau_temps) temps=property(_get_temps,_set_temps) lindy=Danse8temps("swing") print lindy.musique r=lindy.temps print r lindy.temps=6 print lindy.temps
Autrement dit, il y a bien une redirection pour obtenir l'attribut mais quand on le modifie...ben ça ne passe pas par la méthode en question ! Et ça modifie l'attribut...swing
Accesseur
Musique à 8 temps.
8
6
Quelqu'un peut-il me dire où est mon erreur ? Dans le code ? Dans la compréhension de property ?
Merci beaucoup.
Partager