[Python-Dev] pydoc for named tuples is missing methods

Eric Smith eric at trueblade.com
Mon Mar 14 12:59:38 CET 2011


On 03/14/2011 07:46 AM, Antoine Pitrou wrote:
> On Mon, 14 Mar 2011 06:29:09 -0400
> Eric Smith<eric at trueblade.com>  wrote:
>> On 03/14/2011 02:33 AM, Greg Ewing wrote:
>>> Tim Lesher wrote:
>>>
>>>> Because named tuple prefixes a single underscore to its added method
>>>> names (_asdict, _replace, and _make), those methods' docstrings are
>>>> omitted from pydoc:
>>>
>>> IMO these should be called __asdict__, __replace__ and
>>> __make__. Users are perfectly entitled to make up their
>>> own single-underscore names, so using a single underscore
>>> is not sufficient to prevent name collisions.
>>
>> namedtuple won't let you use names starting with an underscore, so the
>> single underscore names are sufficient.
>
> Not for members perhaps, but nothing prevents you from defining methods
> with these names in a subclass AFAIK.

Good point. You can define methods or other attributes this way:

 >>> from collections import namedtuple
 >>> A = namedtuple('A', 'x y')
 >>> class B(A):
...   _replace = 3
...
 >>> b = B(1, 2)
 >>> b._replace
3



More information about the Python-Dev mailing list