¿Qué significan los backticks para el intérprete de python: `num`

Estoy jugando con las listas de comprensión y encontré este pequeño fragmento en otro sitio:

return ''.join([`num` for num in xrange(loop_count)])

Pasé unos minutos tratando de replicar la función (escribiendo) antes de darme cuenta de la`num` El bit lo estaba rompiendo.

¿Qué hace encerrar una declaración en esos personajes? Por lo que puedo ver es el equivalente de str (num). Pero cuando lo cronometré:

return ''.join([str(num) for num in xrange(10000000)])

Se tarda 4.09s mientras que:

return ''.join([`num` for num in xrange(10000000)])

toma 2.43s.

Ambos dan resultados idénticos pero uno es mucho más lento. ¿Que esta pasando aqui?

EDITAR: Extrañamente...repr() da resultados un poco más lentos que`num`. 2.99s vs 2.43s. Usando Python 2.6 (no he probado 3.0 aún).

Respuestas a la pregunta(3)

Su respuesta a la pregunta