Hi! I've asked Google, but have not found any useful information there.
Situation: I have a base class, say >>> class base(object): ImportantClassAttribute = None Now, I want to dynamically generate subclasses of base. That's not a problem. However, I very much want those subclasses to have individual doc-strings. More precicely, I want that important class attribute to be reflected in the doc-string. That's the problem. The only way I've managed to accomplish that is something like the following. >>> ImportantClassAttribute = 7 >>> docString = 'The case %s.' % (ImportantClassAttribute,) >>> exec('''class new(base): """%s""" pass ''' % (docString,)) >>> new.ImportantClassAttribute = ImportantClassAttribute >>> new.__doc__ 'The case 7.' This works as intended. The subclasses do get the doc-strings I want them to have, and I can live with this solution. But: This solution does not strike me as especially beautiful or readable. My first naïve attempt was instead the following. >>> class new(base): pass >>> new.ImportantClassAttribute = 7 >>> new.__doc__ = ('The case %(ImportantClassAttribute)s.' % new.__dict__) Traceback (most recent call last): File "<pyshell#35>", line 1, in -toplevel- new.__doc__ = ('The case %(ImportantClassAttribute)s.' TypeError: attribute '__doc__' of 'type' objects is not writable This is readable to me, but apparently not the way to go, since I'm not allowed to replace the doc-string like this. I've also tried a number of other ways, but they all stumble on similar reasons. Any ideas? Am I stuck with the clumsy exec-solution, or are there other ways to dynamically generate doc-strings of classes? /MiO -- http://mail.python.org/mailman/listinfo/python-list