In JavaScript, one can print out the definition of a function. Is there a way to accomplish this in Python?
(Just playing around in interactive mode, and I wanted to read a module without open(). I was just curious).
In JavaScript, one can print out the definition of a function. Is there a way to accomplish this in Python?
(Just playing around in interactive mode, and I wanted to read a module without open(). I was just curious).
If you're using iPython, you can use function_name? to get help, and function_name?? will print out the source, if it can.
If you are importing the function, you can use inspect.getsource:
>>> import re
>>> import inspect
>>> print inspect.getsource(re.compile)
def compile(pattern, flags=0):
"Compile a regular expression pattern, returning a pattern object."
return _compile(pattern, flags)
This will work in the interactive prompt, but apparently only on objects that are imported (not objects defined within the interactive prompt). And of course it will only work if Python can find the source code (so not on built-in objects, C libs, .pyc files, etc)
You can use the __doc__ keyword:
#print the class description
print string.__doc__
#print function description
print open.__doc__
Take a look at help() function from pydoc module. In interactive mode it should be already imported for you, so just type help(funtion_to_describe). For more capabilities use IPython.