On 4 Apr 2013 00:18, "Barry Warsaw" <ba...@python.org> wrote: > > On Apr 03, 2013, at 09:17 PM, Nick Coghlan wrote: > > >Perhaps we should start emitting a DeprecationWarning for int subclasses > >returned from __int__ and __index__ in 3.4? > > I definitely agree with doing this for __int__(), since it's intimately tied > to int(), which is clearly a type conversion operation. It's analogous to all > the other built-in types-as-functions, so int() calls __int__() which must > return a concrete integer. > > __index__() is a bit trickier because it is not tied directly to type > conversion. In this case, int subclasses could be valid, and as Hrvoje later > points out, returning int-subclasses from __index__() should still work for > all valid use cases.
Implementing __index__ just means "This type can be converted to a Python integer without losing information". Aside from that extra "without information loss" qualification, it's the same as __int__. Cheers, Nick. > > (Bug 17576 would still be a bug in this scenario, since obj.__index__() still > needs to be called by operator.index() even when it's an int subclass.) > > >(I like the idea of an explicit error over implicit conversion to the base > >type, so deprecation of subtypes makes sense as a way forward. We should > >check the other type coercion methods, too.) > > +1 > > -Barry > _______________________________________________ > Python-Dev mailing list > Python-Dev@python.org > http://mail.python.org/mailman/listinfo/python-dev > Unsubscribe: http://mail.python.org/mailman/options/python-dev/ncoghlan%40gmail.com
_______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com