recall function definition from shell

Peter Otten __peter__ at web.de
Tue May 18 15:08:33 EDT 2010


superpollo wrote:

> Patrick Maupin ha scritto:
>> On May 18, 1:41 pm, superpollo <ute... at esempio.net> wrote:
>>> Patrick Maupin ha scritto:
>>>
>>>
>>>
>>>> On May 18, 12:31 pm, superpollo <ute... at esempio.net> wrote:
>>>>>  >>> def myfun():
>>>>> ...     return "WOW"
>>>>> ...
>>>>>  >>> myfun()
>>>>> 'WOW'
>>>>> now, i would like to "list" the funcion definition, something like
>>>>> this:
>>>>>  >>> myfun.somethinglikethis()
>>>>> def myfun():
>>>>>      return "WOW"
>>>>> is there something like this around?
>>>>> bye
>>>> Sure, just give it a docstring and then you can call help on it:
>>>>>>> def myfun():
>>>> ...     ''' myfun returns "WOW" when called.
>>>> ...         This is just a Python __doc__ string
>>>> ...     '''
>>>> ...     return "WOW"
>>>> ...
>>>>>>> help(myfun)
>>>> Regards,
>>>> Pat
>>> mmm... thanks but not quite what i meant :-(
>>>
>>> bye
>> 
>> Well, I don't think Python remembers exactly how you typed it in
> 
> yes python does not, but maybe the *shell* does, or so i thought. i just
> wanted to dump the code for the function in a file, after i tested in
> the shell...

You could try ipython:

$ ipython
Python 2.6.4 (r264:75706, Dec  7 2009, 18:43:55)
Type "copyright", "credits" or "license" for more information.

IPython 0.10 -- An enhanced Interactive Python.
?         -> Introduction and overview of IPython's features.
%quickref -> Quick reference.
help      -> Python's own help system.
object?   -> Details about 'object'. ?object also works, ?? prints more.

In [1]: def f():
   ...:     return 42
   ...:

In [2]: f()
Out[2]: 42

In [3]: %save tmp.py 1
The following commands were written to file `tmp.py`:
def f():
    return 42


In [4]:
Do you really want to exit ([y]/n)?
$ cat tmp.py
def f():
    return 42
$

Peter



More information about the Python-list mailing list