Printing __doc__
Terry Reedy
tjreedy at udel.edu
Wed Mar 21 16:11:45 EDT 2007
"gtb" <goodTweetieBird at hotmail.com> wrote in message
news:1174506426.108098.243940 at d57g2000hsg.googlegroups.com...
| Greetings,
|
| Don't know the daily limit for dumb questions so I will ask one or
| more.
|
| In a function I can use the statement n =
| sys._getframe().f_code.co_name to get the name of the current
| function. Given that I can get the name how can I print the __doc__
| string? I cant use the following, it will tell me to bugger off as the
| string has no such attribute.
|
| def spam(self):
| n = sys._getframe().f_code.co_name
| print n.__doc__ #Wrong
| print __doc__ #No good either
| #....
The docstring you are looking for is attached to the *function* object as
.__doc__ and .func_doc. Frame.f_code is a *code* object. It has a
boilerplate doc string, but not the one you want. As near as I can tell,
frames do not keep references to the func object but only the code object,
which is all it needs to run the code.
I believe tracebacks use co_filename and co_name to find the text of a
function. You could try to parse out the doc string from there.
Terry Jan Reedy
More information about the Python-list
mailing list