Объясните, пожалуйста, в чем разница между ними. Я лишь знаю, что %r выводит "сырое" значение. Но можете показать на примере, что он делает?
Asked
Active
Viewed 1,392 times
1 Answers
2
Вы можете прочитать о различиях тут и здесь. Основной посыл таков:
%rиспользует функциюreprдля встроенных типов включает в себя кавычки и все специальные символы экранируются%sиспользует функциюstr(симметрично%r)
Пример:
s = "spam"
print(repr(s))
# 'spam'
print(str(s))
# spam
Иными словами, %s красиво форматирует объект (делает beautify). Чуть более сложный пример для кастомных типов:
import datetime
d = datetime.date.today()
print(str(d))
# '2011-05-14'
print(repr(d))
# 'datetime.date(2011, 5, 14)'
hedgehogues
- 9,569
__repr__от__str__? – insolor Feb 24 '19 at 20:42