python - 何时在 Python 中使用 %r 而不是 %s?

这个问题在这里已经有了答案:
关闭8年前

开启 Learn Python the Hard Way第 21 页,我看到了这个代码示例:

x = "There are %d types of people." % 10
...
print "I said: %r." % x

为什么这里使用 %r 而不是 %s?什么时候使用%r,什么时候使用%s

最佳答案

%s 说明符使用 str() 转换对象, %r 使用 repr() 转换它.

对于某些对象,例如整数,它们产生相同的结果,但 repr()特殊之处在于(对于可能的类型)它通常返回一个有效 Python 语法的结果,该结果可用于明确地重新创建它所代表的对象。

这是一个使用日期的示例:

>>> import datetime
>>> d = datetime.date.today()
>>> str(d)
'2011-05-14'
>>> repr(d)
'datetime.date(2011, 5, 14)'

repr() 的类型不会产生 Python 语法,包括那些指向外部资源(例如 file)的语法,您不能保证在不同的上下文中重新创建这些语法。

https://stackoverflow.com/questions/6005159/

相关文章:

linux - dd:如何计算最佳 block 大小?

python - 尽管我调用了 pyplot.show(),但 matplotlib 没有显示我的情

python - 将 javadoc 用于 Python 文档

python - 从函数中获取文档字符串

linux - grep 的基本表达式不支持\d 吗?

linux - 在 Bash 中,如何在文件的每一行之后添加一个字符串?

python - 将 python 列表拆分为其他 "sublists"即较小的列表

python - 如何为每个子图添加标题

linux - 如何通过 * 将包括隐藏文件在内的所有文件移动到父目录中

linux - 如何从脚本编辑/etc/sudoers?