# coding: latin-1 class piece_normale : def tirage (self) : return random.randint (0,1) def cent_tirages (self) : s = 0 for i in range (0,100) : s += self.tirage () return s class piece_truquee (piece_normale) : def tirage (self) : t = random.randint (0,10) if t >= 3 : return 1 else : return 0 class piece_tres_truquee (piece_truquee) : def __init__(self) : # création de l'attribut avant self.avant = 0 def tirage (self) : if self.avant == 0 : # appel de la méthode tirage de la classe piece_truquee self.avant = piece_truquee.tirage (self) else : # appel de la méthode tirage de la classe piece_normale self.avant = piece_normale.tirage (self) return self.avant p = piece_normale () print "normale ", p.cent_tirages () p2 = piece_truquee () print "truquee ", p2.cent_tirages () p3 = piece_tres_truquee () print "tres truquee ", p3.cent_tirages ()