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



