python2.xでこれを行う良い方法があるかどうかはわかりません。 python3.xで、あなたは直接__doc__
を入れ替えることができます。残念ながら、python2.xはあなたに、この時点でエラー与え
$ python3
Python 3.6.0a2 (v3.6.0a2:378893423552, Jun 13 2016, 14:44:21)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> from collections import namedtuple
>>> NT = namedtuple('NT', ['f1', 'f2', 'f3'])
>>> NT.f1.__doc__
'Alias for field number 0'
>>> NT.f1.__doc__ = 'Hello'
:python2.xオン
>>> NT.f1.__doc__ = 'Hello World.'
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: readonly attribute
を、あなたはでそれを得ることができます
>>> from collections import namedtuple
>>> NT = namedtuple('NT', ['f1', 'f2', 'f3'])
>>> class NTWithDoc(NT):
... """docstring."""
... __slots__ =()
... f1 = property(NT.f1.fget, None, None, 'docstring!')
...
>>> help(NTWithDoc)
>>> a = NTWithDoc(1, 2, 3)
>>> a.f1
1
しかし、これはdocstringsを取得するために多くの手間がかかるように感じます:-)。
メモ:このコードには「pass」は必要ありません: – mgilson
とにかくpy 2またはpy 3を使用しています –
[このトピック](http://stackoverflow.com/questions/1606436/adding -docstrings-to-namedtuples)は問題をカバーしていますか? – alecxe