
Stayvoid wrote:
Hi there!
I want to make an improvement connected with the interactive help mode.
Example: You want to check some keys in the dictionary, but you can't remember the syntax of the command.
If you type something like this: help(key), the interpreter will output an error. Because help(key) is just a plain expression, and it tries to evaluate key first before even calling help(). Maybe help(*key*) could make it work?
Remember that the help() function is just a regular function, like any other. It isn't magic, and it can't accept anything that isn't a valid Python object. That won't change.
help(math) won't work unless you have imported the math module first.
help(key) won't work unless you actually have a name `key`, in which case it will work but it may not do what you are expecting.
help(*key*) can't work because *key* is a SyntaxError.
However, help('key') would work. It currently says:
help('key')
no Python documentation found for 'key'
Perhaps help should be more aggressive at trying to find something useful before giving up. Or you could just encourage the beginner to use help interactively, by calling help() with no arguments, then following the prompts.
In my opinion it will be very helpful for newcomers if the interpreter could search for similar commands and output them all.
A keyword search facility, familiar to Linux users as `man -k key` or `apropos key`, might be useful. Or it might also complicate the interactive help for no good reason. Beware of trying to make help() do too much.
Remember also that help() is not a substitute for the Python documentation and tutorials. It is not aimed at teaching beginners the basics. You actually need a reasonably good grasp of Python skills to get the most from the interactive help.