On Thu, Aug 30, 2018 at 9:03 AM Steven D'Aprano <st...@pearwood.info> wrote:
> On Wed, Aug 29, 2018 at 09:39:05PM -0700, Neil Girdhar wrote: > > > Would there be any problem with changing: > > > > In [4]: Fraction(1, 1) ** Fraction(2, 3) > > Out[4]: 1.0 > > > > In [5]: Fraction(-1, 1) ** Fraction(2, 3) > > Out[5]: (-0.4999999999999998+0.8660254037844387j) > > > > In [6]: Fraction(0, 1) ** Fraction(2, 3) > > Out[6]: 0.0 > > > > I'd like these to be Fraction(1), Fraction(1), and Fraction(0). > > If anyone else has mentioned the backward-compatibility issue by now, I > haven't see it. I believe that would make it a fairly big problem. > > I don't think it's that big a problem since Fraction < numbers.Real > I expect that there is code out in the wild which (for good or ill) now > expects 1**Fraction(2, 3) to return 1.0, rather than Fraction(1), and > similarly for the other examples. Changing that could break people's > code. > > Even if we had consensus that this was a good idea, or at least > consensus from the maths-folk who care about this sort of thing (I'd > like to know what Uncle Timmy and Mark think of this idea), it would > still probably need a "__future__" import to activate it, or a > deprecation period. Or some other annoyance. > > Possibly the simpler approach would be to add a subclass that does what > you want. UnitRootFraction or something. > > Then the only argument will be whether such a subclass ought to go into > the fractions module, or your own personal toolkit :-) > > I must admit though, I'm a bit curious as to what you are doing that > having 1**Fraction(2,3) return 1.0 is an annoyance, but having > 27**Fraction(2,3) return 8.999999999999998 instead of Fraction(9) isn't. > > You're right, it would have been better in my example (linked above) to support all of those things. > > > -- > Steve > _______________________________________________ > Python-ideas mailing list > Python-ideas@python.org > https://mail.python.org/mailman/listinfo/python-ideas > Code of Conduct: http://python.org/psf/codeofconduct/ > > -- > > --- > You received this message because you are subscribed to a topic in the > Google Groups "python-ideas" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/python-ideas/aZIHpPhe0mw/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > python-ideas+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. >
_______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/