Question à propos de la méthode `Fraction.__int__`

Pour les problèmes liés à l'installation et au fonctionnement de Pyromaths.

Modérateur : Développeurs

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

Question à propos de la méthode `Fraction.__int__`

Message par spalax » 21 mai 2018, 21:50

Bonjour,
à ma grande surprise, `int(Fraction(15, 6))` est égal à 15, et non pas à 2 comme je m'y attendrais. Le test à la ligne précédente semble indiquer que la bonne réponse est 2, pas 15.

[1] https://github.com/Pyromaths/pyromaths/ ... ns.py#L616

Je suis tenté de corriger, mais j'ai peur de casser quelque chose ailleurs. Une idée ?

Louis

PS : Pour les rapports de bug, je suis plus à l'aise avec github qu'avec le forum. Jérôme : tu préfères le forum ? github ? indifférent ?

Avatar de l’utilisateur
Jérôme
Administrateur - Site Admin
Messages : 1131
Inscription : 26 août 2006, 13:10
Localisation : Nantes
Contact :

Re: Question à propos de la méthode `Fraction.__int__`

Message par Jérôme » 22 mai 2018, 18:56

Je pense que gitHub est bien plus pratique pour les rapports de bug. Et puis ça permet de les fermer, ce qui est toujours plaisant. :)
Dans mon esprit, int(Fraction(15,6)) devait renvoyer un message d'erreur. Mais le test est pourri.
def __int__(self):
        try:
            assert (self.n % self.d == 0), 'La fraction n\'est pas un nombre entier !'
            return int(self.n / self.d)
        except AssertionError, args:
            print '%s: %s' % (args.__class__.__name__, args)
C'est je pense ce que j'avais en tête. mais je ne sais pas si renvoyer un message d'erreur est une bonne chose. Je ne sais plus où c'est utilisé.
>>> from pyromaths.classes import Fractions
>>> int(Fractions.Fraction(15,3))
5
>>> int(Fractions.Fraction(15,6))
AssertionError: La fraction n'est pas un nombre entier !
Traceback (most recent call last):
  File "<input>", line 1, in <module>
    int(Fractions.Fraction(15,6))
TypeError: __int__ returned non-int (type NoneType)
Pyromaths génère des fiches d'exercices et leur corrigé en toute simplicité.
Un programme multi-plateformes libre et gratuit sous licence GPL

spalax
Messages : 86
Inscription : 20 juil. 2011, 02:23
Localisation : Isère
Contact :

Re: Question à propos de la méthode `Fraction.__int__`

Message par spalax » 22 mai 2018, 21:10



Répondre