С выражением 'abc%rdef' % obj
деталь '%r'
заменяется на repr(obj)
С выражением 'ABC%sDEF' % obj
деталь '%s'
заменяется на str(obj)
.
repr () - это функция, которая для обычных объектов возвращает строку, аналогичную той, которую вы написали бы в скрипте, чтобы определить объект, переданный в качестве аргумента для repr () функция:
Для многих типов эта функция пытается вернуть строку, которая
выдает объект с таким же значением при передаче в eval ()
http://docs.python.org/library/functions.html#repr
.
Пример 1
, если вы считаете список, определенный как li = [12,45,'haze']
print li
напечатает [12,45, "дымка"]
print repr(li)
также напечатает [12,45, 'haze'] , потому что [12,45,'haze']
- это последовательность символов, которые записываются в сценарии для определения списка li с этим значением
Пример 2
если вы считаете строку, определенную ss = 'oregon'
:
print ss
напечатает oregon , без кавычек вокруг
print repr(ss)
напечатает 'oregon' , поскольку 'oregon'
- это последовательность символов, которую необходимо написать в скрипте, если вы хотите определить строку ss с помощью значение oregon в программе
.
Таким образом, это означает, что фактически для обычных объектов repr () и str () возвращают строки, которые в общем случае равны, за исключением строкового объекта. Это делает repr () особенно интересным для строковых объектов. Для примера очень полезно проанализировать содержимое HTML-кодов.