Converter bytes em string com str () retorna string com marcas de fala

Digamos que eu tenha uma variável contendo bytes:

>>> a = b'Hello World'

Pode ser verificado com:

>>> type(a)
<class 'bytes'>

Agora eu tento converter um em uma string comstr():

>>> b = str(a)

e com certeza é uma string:

>>> type(b)
<class 'str'>

Agora eu tento imprimirb mas eu recebo um resultado totalmente inesperado:

>>> print(b)
b'Hello World'

Ele retorna uma string, como eu esperaria, mas também mantém ob (símbolo de byte) e o' (aspas).

Por que faz isso, e não apenas imprime a mensagem entre aspas?

questionAnswers(4)

yourAnswerToTheQuestion