Bonjour,
J'ai un problème avec l'utilisation, il y a quelque chose qui m'échappe.
J'ai testé un exemple trouvé sur un livre (Python en concentré, Alex Martelli, édition O'Reilly 2004 p84-85):
aucune exception n'est levée par le second r.surface = r.get_surface().
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 class Rectangle(object): def __init__(self,largeur,hauteur): self.largeur = largeur self.hauteur = hauteur def get_surface(self): return self.largeur * self.hauteur class RectangleOptimise(Rectangle): __slots__ = "largeur","hauteur" r = Rectangle(2.,3.) r.surface = r.get_surface() print r.surface r = RectangleOptimise(2.,3.) r.surface = r.get_surface() print r.surface
comme si le __slots__ n'avait pas été pris en compte.
J'ai testé sur 2 versions de l'interpréteur python (2.4.2 et 2.5.4) sur deux machines différentes.
J'ai remarqué qu'en ajoutant un __slots__ identique à la première classe cela fonctionne comme prévu.
Vous avez remarqué quelque chose de similaire ?
Merci d'avance pour votre aide.
Partager