[Python-Dev] [Python-checkins] r87445 - python/branches/py3k/Lib/numbers.py

Éric Araujo merwok at netwok.org
Sun Dec 26 18:13:53 CET 2010


Le 24/12/2010 02:08, Nick Coghlan a écrit :
> On Fri, Dec 24, 2010 at 4:41 AM, eric.araujo <python-checkins at python.org> wrote:
>> Fix small inaccuracy: there is no index function
> 
> Yes, there is, it just isn't a builtin - it lives in the operator module.
Defining object.__index__ with operator.index seems pretty circular to
me :)  http://docs.python.org/dev/reference/datamodel#object.__index__
does it, but it should be fixed IMO.  The difference between __int__ and
__index__ is also not clear.

>>     def __index__(self):
>> -        """index(self)"""
>> +        """someobject[self]"""
>>         return int(self)
> 
> Changing the docstring to say "operator.index(self)" would be the
> clearest solution here.
I disagree.  __add__ is documented as implementing +, not operator.add.

> (Choosing to accept arbitrary index objects as
> integer equivalents is up to the object being indexed, just like
> interpreting slices is - a dict, for example, will never invoke
> __index__ methods).
I honestly don’t know what the best fix is.  We could copy the doc from
datamodel (“called whenever Python needs an integer object (such as in
slicing, or in the built-in bin(), hex() and oct() functions)”).  I’ve
been told on IRC to let Mark Dickison decide how to fix the docstrings
in the numbers module (deleting them being of course an option: magic
methods are documented in the language reference, they don’t need
docstrings).

Regards



More information about the Python-Dev mailing list