Q:

Two forms of bytes to string decoding

Is there any difference between the following two conversions in python3?
>>> b'hello'.decode()
'hello'
>>> b'hello'.decode('utf-8')
'hello'

Just today I've come across the first method, which I had never seen before (does that default to utf-8, or is the encoding no explicitly set and inferred?

A:

The default is indeed 'utf-8'
>>> help(b'hello'.decode)
Help on built-in function decode:

decode(encoding='utf-8', errors='strict') method of builtins.bytes instance
    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.

