Bonsoir Jean Claude,
Voici mes remarques:
- "classe affichant une durée"
Non, cette class n'affiche aucune durée. Elle définit deux méthodes,
sans compter celle pour son initialisation:
- la méthode "add" pour mettre à jour la durée,
- laméthode "str" pour formatter la durée pour une éventuelle impression.
Rien à dire pour la méthode "__init__"
La méthode "__add__" est faite pour mettre à jour la durée , c'est à
dire "self" et non pas pour retourner une autre durée.
Je l'écrirai comme ceci:
def __add__(self, objet_a_ajouter):
self.sec+=objet_a_ajouter
if self.sec >= 60:
self.min+=self.sec//60
self.sec=self.sec%60
Rien à dire pour la méthode "__str__".
Enfin, pour mettre en oeuvre tout cela, j'écrirai:
d1=Duree(3,5)
# mise à jour de la durée
d1.__add__(57)
# impression de la durée
print"durée %s" % d1
Amitiés.
Paul.
Le 11/03/2013 15:05, Jean-Claude Armingaud a écrit :
Salut tous,
un petit souci pour additionner deux temps, en utilisant la méthode __add__
si on veut bien me débrouiller le truc, ça m'intéresse.
d'avance, merci.
il faut bien sûr renommer en .py.
J.-C.
# -*- coding: Latin-1 -*-
import os
class Duree:
"classe affichant une durée"
def __init__(self,min=0,sec=0):
self.min = min
self.sec = sec
def __add__(self, objet_a_ajouter):
self.sec+=objet_a_ajouter
if self.sec >= 60:
self.min+=self.sec//60
self.sec=self.sec%60
def __str__(self):
return "{0:02}:{1:02}".format(self.min,self.sec)
# initialisation de la durée
d1=Duree(3,5)
# mise à jour de la durée
d1.__add__(57)
# impression de la durée
print"durée %s" % d1
os.system("pause")