Gabriel Genellina wrote: > En Sat, 16 Jan 2010 14:55:11 -0300, Steven D'Aprano > <st...@remove-this-cybersource.com.au> escribió: > >> I have a series of subclasses that inherit methods from a base class, but >> I'd like them to have their own individual docstrings. The obvious >> solution (other than copy-and-paste) is this: >> >> >> class Base(object): >> colour = "Blue" >> def parrot(self): >> """docstring for Base""" >> return "Norwegian %s" % self.colour >> >> >> class SubClass(Base): >> colour = "Red" >> def parrot(self): >> """docstring for Subclass""" >> return super(Subclass, self).parrot() >> >> >> but that adds an awful lot of boilerplate to my subclasses. Are there any >> other good solutions to this problem? > > Methods don't have docstrings; functions do. So one has to "clone" the > function to set a new docstring. > On behalf of all methods I would like to say "We demand the right to docstrings".
>>> print abs.__doc__ abs(number) -> number Return the absolute value of the argument. >>> Perhaps I am misunderstanding "don't have docstrings". This code: >>> class TheHellOfIt: ... """Classes, of course, as first-class citizens and have docstrings.""" ... def method(self): ... """Discrimination against methods, I call it.""" ... pass ... >>> print TheHellOfIt.method.__doc__ Discrimination against methods, I call it. >>> import sys >>> help(sys.modules["__main__"]) Gives: Help on built-in module __main__: NAME __main__ FILE (built-in) CLASSES TheHellOfIt class TheHellOfIt | Classes, of course, as first-class citizens and have docstrings. | | Methods defined here: | | method(self) | Discrimination against methods, I call it. So, are the demands of the methods reasonable, or do they already have what they are so loudly demanding? regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 PyCon is coming! Atlanta, Feb 2010 http://us.pycon.org/ Holden Web LLC http://www.holdenweb.com/ UPCOMING EVENTS: http://holdenweb.eventbrite.com/ -- http://mail.python.org/mailman/listinfo/python-list