Where does help() find the info in Python?
built-in, helper, python, python-2.7
Solution
If you simply do, `help(help)`, you will get
Help on _Helper in module site object:
class _Helper(__builtin__.object)
| Define the builtin 'help'.
| This is a wrapper around pydoc.help (with a twist).
|
| Methods defined here:
|
| __call__(self, *args, **kwds)
|
| __repr__(self)
|
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| __dict__
| dictionary for instance variables (if defined)
|
| __weakref__
| list of weak references to the object (if defined)
basically, `help` gets its input from `pydoc.help`. Quoting, `pydoc` documentation,
For modules, classes, functions and methods, the displayed documentation is derived from the docstring (i.e. the `__doc__` attribute) of the object, and recursively of its documentable members. If there is no docstring, `pydoc` tries to obtain a description from the block of comment lines just above the definition of the class, function or method in the source file, or at the top of the module (see `inspect.getcomments()`).
The built-in function `help()` invokes the online help system in the interactive interpreter, which uses `pydoc` to generate its documentation as text on the console.
But where exactly does it find the information it shows?
The quoted bold text above answers this question.
Problem
I discovered the built-in `help()` recently that prints some information for a module, function, method, class, etc. But where exactly does it find the information it shows? Python docs don't give a single hint about this. ``` >>> import base64 >>> help(base64) Help on module base64: NAME base64 - RFC 3548: Base16, Base32, Base64 Data Encodings FILE /usr/lib/python2.7/base64.py .. ```