Что означают обратные пометки для интерпретатора Python: `num`

я играю со списком, и я наткнулся на этот небольшой фрагмент на другом сайте:

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

Я потратил несколько минут, пытаясь повторить функцию (набрав), прежде чем понять`num` немного ломал это.

Что делает вложение оператора в эти символы? Из того, что я вижу, это эквивалент str (num). Но когда я рассчитал это:

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

Требуется 4.09 с, тогда как:

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

занимает 2,43 с.

Оба дают одинаковые результаты, но один намного медленнее. Что здесь происходит?

РЕДАКТИРОВАТЬ: Как ни странно ...repr() дает немного более медленные результаты, чем`num`, 2.99 с против 2.43 с. Использование Python 2.6 (убежищеЯ пока не попробовал 3.0).

Ответы на вопрос(3)

Ваш ответ на вопрос