Python Forum

Full Version: Understanding "help()" output?
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
I am fairly new to Python and sometimes have minor trouble understanding the output from help().

First of all, is there a way to tell what formats are acceptable for *args and **kwargs? When the help() function lists methods, it often gives something like:
Methods defined here:
__method__(self, / ,*args,**kwargs).

I would like to play around and experiment with different modules and methods, but often find it difficult because I can't figure out what formats to use for *args and **kwargs. I also assume that this display fails to communicate the number of arguments that are required as well.
*args means that the function or method accepts any number of unnamed parameters. The parameters themselves are just expressions or values, and they are separated by commas. **kwargs means that the function or method accepts any number of named parameters, which are a name, and equals sign, and an expression or value. Again, they are separated by commas.
Not sure this will help, but:

I wrote a package not long after I started programming in python (this is a warning)
called PyHarry, available here: https://github.com/Larz60p/PyHarry
in that, there is a module named HarryHelp.py (https://github.com/Larz60p/PyHarry/blob/...rryHelp.py)
In that module, there is a method named 'inspect_getHelp' you might find this useful. I believe the intent was
to get all of the help, but you perhaps can scrape some of what's there.
So for example, when I type (help(bytes)) and receive:

bytes(string, encoding [,errors]) --> errors ,

Does this command take 2 arguments or 3? The bracket notation with the errors confuses me, partly because the comma is inside the bracket. Also, how can I know what types of arguments are acceptable for the encoding?
The brackets do indicate that that parameter is optional.  bytes, in particular, has a huge amount of docs, and if you go down further, you can see what it expects the encoding to be...
 |
 |  decode(self, /, encoding='utf-8', errors='strict')
 |      Decode the bytes using the codec registered for encoding.
 |
 |      encoding
 |        The encoding with which to decode the bytes.
 |      errors
 |        The error handling scheme to use for the handling of decoding errors.
 |        The default is 'strict' meaning that decoding errors raise a
 |        UnicodeDecodeError. Other possible values are 'ignore' and 'replace'
 |        as well as any other name registered with codecs.register_error that
 |        can handle UnicodeDecodeErrors.