Le Mon, 04 May 2009 16:08:38 -0700,
Emile van Sebille <[email protected]> s'exprima ainsi:
> On 5/4/2009 3:37 PM Tim Michelsen said...
> > Dear Tutors and fellow pythonistas,
> > I would like to get access to the private methods of my function.
> >
> > For instance:
> > Who can I reference the docstring of a function within the function
> > itself?
> <snip>
> >
> > def show2(str):
> > """prints str"""
> > print str
> > d = self.__doc__
> > print d
>
> >>> def show2(str):
> ... """prints str"""
> ... print str
> ... print globals()['show2'].__doc__
> ...
> >>> show2('hello')
> hello
> prints str
> >>>
Hello Emile,
Why don't you use the func name directly?
print show2.__doc__
I mean it's a constant in the sense that it is know at design time, right? And
you need it anyway, as shown by the fact that it becomes a string literal in
the your version.
It's not like if you would _not_ know it ;-) Fortunately, funcs (and methods
and classes and modules -- but not other object AFAIK) know their own
(birth)name:
def docString(obj):
name = obj.__name__
return globals()[name].__doc__
Should work for the above listed object types. Anyway, other types have no
docstring...
> This is the easy way -- ie, you know where to look and what name to use.
> You can discover the name using the inspect module, but it can get
> ugly. If you're interested start with...
>
> from inspect import getframeinfo, currentframe
------
la vita e estrany
_______________________________________________
Tutor maillist - [email protected]
http://mail.python.org/mailman/listinfo/tutor