Someone asked
why does "help(import)" not work? I know the reason but it's not why I wanted to write about here.
One reply exposed that I didn't know much about
help. It shows a usage, that I had never known before:
help('import')
You can pass a string type, I also thought
help is just printing out
__doc__. And yes string also has
__doc__, but why would you do that? Why would you want to get
__doc__ of an instance of
int,
str,
list, etc? So I never tried to pass a string to
help.
Therefore I didn't known I could even get help about keywords. Moreover, I thought
help was a function, which is not after I dug in.
help is an instance of
site._Helper.
site module will be loaded automatically when you fire up Python interactive shell. Once it load, the
help in shell is an instance of
site._Helper.
If you invoke
help without any arguments,
help(), this will bring you to interactive help, I had never tried to use
help without passing an object before.
This is actually invoking
site._Helper.__call__, which is an instance method, means the instance of
site._Helper is callable, and that's the way you get into interactive help.
site._Helper also has overridden
__repr__ method, if you just type
help and hit enter. The interactive shell will actually invoke this
__repr__ method, and that's how we get this hint
Type help() for interactive help, or help(object) for help about object.
Note this does not directly mention that you can use
help('string'), where
string could be a module name, a keyword, or a topic. But you can know it from the message after you quit interactive help:
>>> help()
Welcome to Python 2.6! This is the online help utility.
If this is your first time using Python, you should definitely check out
the tutorial on the Internet at http://docs.python.org/tutorial/.
Enter the name of any module, keyword, or topic to get help on writing
Python programs and using Python modules. To quit this help utility and
return to the interpreter, just type "quit".
To get a list of available modules, keywords, or topics, type "modules",
"keywords", or "topics". Each module also comes with a one-line summary
of what it does; to list the modules whose summaries contain a given word
such as "spam", type "modules spam".
help> quit
You are now leaving help and returning to the Python interpreter.
If you want to ask for help on a particular object directly from the
interpreter, you can type "help(object)". Executing "help('string')"
has the same effect as typing a particular string at the help> prompt.
Maybe this is my excuse that I did know
help better.