编写高质量代码 改善Python程序的91个建议——笔记(二)

建议34:str()和repr()的区别

  1)两者之间的目标不同:str()主要面向用户,其目的是可读性,返回形式为用户友好性和可读性都较强的字符串类型;而repr()面向的是python解释器,或者说开发人员,期目的是准确性,其返回值表示python解释器内部的含义,常作为编程人员debug用途。

  2)在解释器中直接输入a时默认调用repr()函数,而pring(a)则调用str()函数。 

  3)repr()的返回值一般可以用eval()函数来还原对象,通常来说有如下等式:

    obj == eval(repr(obj))

  4)这两个方法分别调用内建的__str__()和__repr__()方法,一般来说在类中都应该定义__repr__()方法,而__str__()方法则可选,当可读性比准确性更为重要的时候应该考虑定义__str__()方法。如果类中没有定义__str__()方法,则默认会使用__repr__()方法的结果来返回对象的字符串表示形式。用户实现__repr__()方法的时候最好保证其返回值可以用eval()方法使对象重新还原。

 

上一篇:pycharm更换背景图


下一篇:leetcode 每日一题 91. 解码方法