Docstrings and class Attributes

Steven D'Aprano steve+comp.lang.python at pearwood.info
Mon Aug 8 14:32:18 EDT 2011


Nick wrote:

> Is it possible to put a doc string on a class attribute? Something
> like this
> 
> class Test (object):
>     '''classx'''
>     fred = 10
>     '''attribute'''


The short answer is, no.

The longer answer is, maybe, if you can make Test.fred be some sort of
object with a docstring:

class MyInt(int):
    '''attribute'''

class Test(object):
    '''classx'''
    fred = MyInt(10)


>>> Test.fred.__doc__
'attribute'


But the hard part is ensuring that Test.fred doesn't get replaced:

>>> Test.fred = 11
>>> Test.fred.__doc__
'int(x[, base]) -> integer\n\nConvert a string or number ...'


Not impossible to solve, but an awful lot of trouble for very little
benefit. Just put your documentation in the class, where people expect to
find it:

class Test(object):
    '''classx

    Test.fred is an attribute.
    '''
    fred = 10



-- 
Steven




More information about the Python-list mailing list