我什么时候应该使用str()和什么时候应该使用repr()?
repr()
主要用于调试和探索。例如,如果您怀疑一个字符串中没有打印字符,或者一个浮点数有一个小的四舍五入错误,repr()
它将显示给您;str()
不得。
repr()
在生成要粘贴到源代码中的文字时也很有用。它也可以用于持久性(使用ast.literal_eval
或eval
),但这不是一个好主意- 如果您想要可编辑的持久性值,则像JSON或YAML之类的更好,如果您不打算对其进行编辑,请使用pickle 。
2.在什么情况下我可以使用它们中的任何一个?
好了,你 可以 在几乎任何地方使用它们。你 不应该 通常使用它们作为上述除。
为您提供适合最终用户使用的输出- 并非总是如此(例如,str([‘spam’,’eggs’])不太可能是您要放在GUI中的任何东西),但是比起更多repr()
。