1. Prière d'utiliser la balise CODE, parce que là c'est illisible
2. En python, les méthodes et les attributs sont dans le même namespace, donc quand tu écris
Code :
def surface(self): self.surface = 3.14 * self.r**2
|
ben la valeur surface que tu crées écrase la méthode homonyme, d'où le message d'erreur
3. Accessoirement, j'ai du mal à voir l'intérêt de self.surface, pour ne pas dire qu'il n'en a aucun. Pourquoi ne pas créer une variable locale normale?
Code :
def surface(self): surface = 3.14 * self.r**2 return surface
|
Ou même balancer directement le résultat, vu qu'au final la variable locale ne sert à rien?
Code :
def surface(self): return 3.14 * self.r**2
|
4. Tu vas avoir exactement le même problème pour exactement les mêmes raisons dans cylindre.volume
5. Ce serait bien d'appliquer les conventions de codage de la PEP8: sauf besoin spécifique et particulier, un nom de classe commence par une majuscule
6. Enfin, il est de bon ton d'hériter d'object plutôt que de n'hériter de rien du tout, afin d'utiliser les new-style classes (sauf si besoin explicite des anciennes classes, mais ce n'est pas le cas ici)
Message édité par masklinn le 25-04-2008 à 11:41:35
---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody