Override a method but inherit the docstring
ben+python at benfinney.id.au
Fri Jul 17 04:58:48 CEST 2009
Paul McGuire <ptmcg at austin.rr.com> writes:
> Two ideas come to mind, the decorator way and the metaclass way. I am
> not a guru at either, but these two examples work:
I think the decorator idea is most attractive to me, since it can be
applied per method.
> # the decorator way
> def inherit_docstring_from(cls):
> def docstring_inheriting_decorator(fn):
> fn.__doc__ = getattr(cls,fn.__name__).__doc__
> return fn
> return docstring_inheriting_decorator
That works, thank you.
> Using a decorator in this manner requires repeating the super class
> name. Perhaps there is a way to get the bases of BarGonk, but I don't
> think so, because at the time that the decorator is called, BarGonk is
> not yet fully defined.
Yes, I tried a few different ways, but within the decorator it seems the
function object is quite unaware of what class it is destined for.
\ “We are human only to the extent that our ideas remain humane.” |
`\ —_Breakfast of Champions_, Kurt Vonnegut |
More information about the Python-list