Python3 repr() 函数

repr() 是 Python 中一个内置函数,用于获取对象的“官方”字符串表示形式。这个字符串通常可以用来重新创建原始对象。与之相对的是 str() 函数,后者更侧重于可读性。在某些情况下,repr() 的输出可能对程序员更有帮助。

使用场景

当你需要生成一个能准确再现对象的字符串时,repr() 非常有用。这在调试和日志记录中尤其重要,因为这些场合下,你可能需要将对象转换为字符串,并稍后通过该字符串恢复对象。

示例

-- -------------------- ---- -------
----- -------
    --- -------------- ----- -----
        --------- - ----
        -------- - ---
    
    --- ---------------
        ------ ---------------------------- ----------------

------ - --------------- ---
-------------------  - --- -------------------- -------

在这个例子中,我们定义了一个 Person 类,并重写了它的 __repr__() 方法。当我们调用 repr() 函数时,它会返回我们定义的字符串表示形式。

内置类型的 repr() 表现

对于 Python 内置类型,repr() 通常会提供一种更精确或更全面的描述。例如:

  • 对于整数,它会显示完整的数值。
  • 对于浮点数,它可能会显示更多的小数位。
  • 对于列表、元组等集合类型,它会显示每个元素及其类型。

示例

repr()str() 的区别

虽然 str()repr() 都是将对象转换为字符串的方法,但它们的目的和使用场景不同。

  • str(): 主要用于生成对象的用户友好型字符串表示,适合打印和显示。
  • repr(): 目的是生成对象的机器可读表示,主要用于调试和日志记录。

示例

-- -------------------- ---- -------
----- -------------
    --- -------------- -------
        ---------- - -----
    
    --- --------------
        ------ -----------------------------------
    
    --- ---------------
        ------ -----------------------------

------- - ----------------

-------------------  - --- ----------------------
--------------------  - --- ----------------

在这个例子中,str() 返回一个更加描述性的字符串,而 repr() 则是一个更简洁的表示形式。

自定义类中的 __repr__() 方法

当你自定义类时,可以通过实现 __repr__() 方法来控制其在被 repr() 调用时的表现。这有助于确保你的类能够以一种清晰且一致的方式展示其状态。

示例

-- -------------------- ---- -------
----- ----------
    --- -------------- ------ --------
        ---------- - -----
        ----------- - ------
    
    --- -----------
        ------ ---------- - -----------
    
    --- ---------------
        ------ ------------------------------- ----------------------

--------- - ------------ ---
----------------------  - --- ------------------ ----------

在这个例子中,我们定义了一个 Rectangle 类,并实现了 __repr__() 方法。这样,当我们使用 repr() 函数时,就能得到一个清晰且详细的表示。

总结

repr() 函数是 Python 中一个强大的工具,用于生成对象的正式字符串表示形式。了解如何正确使用它可以帮助你更好地进行调试和日志记录。同时,学会如何自定义类的 __repr__() 方法,可以使你的代码更具可读性和可维护性。

上一篇: Python3 locals() 函数
下一篇: Python3 zip() 函数
纠错
反馈