Author mark.dickinson
Recipients agthorr, belopolsky, christian.heimes, gregory.p.smith, mark.dickinson, oscarbenjamin, pitrou, ronaldoussoren, sjt, steven.daprano, stutzbach, tshepang, vajrasky
Date 2013-08-12.10:53:17
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1376304797.89.0.80372483375.issue18606@psf.upfronthosting.co.za>
In-reply-to
Content
> Why?  I've never encountered this recommendation before.  x.__float__() > would be clearer, IMO.

Hmm;  it would be better if I engaged by brain before commenting.  I guess the point is that type(x).__float__(x) better matches the behaviour of the builtin float:


>>> class A:
...     def __float__(self): return 42.0
... 
>>> a = A()
>>> a.__float__ = lambda: 1729.0
>>> 
>>> float(a)
42.0
>>> a.__float__()
1729.0
>>> type(a).__float__(a)
42.0


When you get around to tests, it would be nice to have a test for this behaviour, just so that someone who comes along and wonders the code is written this way gets an immediate test failure when they try to incorrectly "simplify" it.
History
Date User Action Args
2013-08-12 10:53:17mark.dickinsonsetrecipients: + mark.dickinson, gregory.p.smith, ronaldoussoren, belopolsky, pitrou, agthorr, christian.heimes, stutzbach, steven.daprano, sjt, tshepang, oscarbenjamin, vajrasky
2013-08-12 10:53:17mark.dickinsonsetmessageid: <1376304797.89.0.80372483375.issue18606@psf.upfronthosting.co.za>
2013-08-12 10:53:17mark.dickinsonlinkissue18606 messages
2013-08-12 10:53:17mark.dickinsoncreate