python中repr函数作用是什么?

repr() 返回对象的官方字符串表示,用于调试,能精确还原对象结构,如列表和字符串会显示引号,自定义类可通过 repr 方法实现重建对象的输出,便于开发时查看真实数据类型与内容。

在 Python 中,repr() 函数的作用是返回一个对象的“官方”字符串表示形式,通常用于调试和开发。

返回对象的可读字符串表示

repr() 会尝试生成一个字符串,这个字符串理想情况下可以用来重新创建该对象。也就是说,返回的字符串更精确、更完整,适合开发者查看。

例如:

x = [1, 2, 3]
print(repr(x))  # 输出: [1, 2, 3]

s = "hello" print(repr(s)) # 输出: 'hello'(带引号)

对比 str(),它更偏向于让用户友好地阅读,而 repr() 更偏向于让程序员看清楚对象的真实结构。

常用于调试场景

当你在交互式解释器中输入变量名时,Python 实际上调用的就是 repr() 来显示结果。

自定义类中可以通过定义 __repr__ 方法来控制输出:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
def __repr__(self):
    return f"Person('{self.name}', {self.age})"

p = Person("Alice", 30) print(repr(p)) # 输出: Person('Alice', 30)

这样做的好处是,输出的字符串可以直接复制到代码中用于重建对象,方便调试。

确保类型信息清晰

repr() 能保留数据类型差异。比如字符串会带上引号,避免歧义。

text = "world"
print(str(text))   # world
print(repr(text))  # 'world'

这种区别在日志记录或排查问题时特别有用。

基本上就这些。repr 的核心就是提供一个明确、无歧义的对象表示方式。不复杂但容易忽略。