[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 2011年3月14日 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

AltStyle によって変換されたページ (->オリジナル) /