[Python-Dev] Semantics of __int__(), __index__()
Terry Jan Reedy
tjreedy at udel.edu
Thu Apr 4 04:18:57 CEST 2013
On 4/3/2013 3:36 PM, Ethan Furman wrote:
> On 04/03/2013 12:21 PM, Tres Seaver wrote:
>> Given that requirement, we still don't have to mandate that __int__
>> return an actual instance of the int type: the coercion could happen
>> inside int() (as it would for any non-subclass).
>
> I don't understand. A non-int could only become an int via __int__,
> which int() calls. What magic is there in int() to turn any arbitrary
> object into an integer?
From the 2.7 manual:
"
object.__complex__(self)
object.__int__(self)
object.__long__(self)
object.__float__(self)
Called to implement the built-in functions complex(), int(), long(), and
float(). Should return a value of the appropriate type."
I have always understood 'value of the appropriate type' to mean just
what Guido says he intended it to mean. Changing to 'instance of the
class or subclass thereof' is a change.
More information about the Python-Dev
mailing list