Python repr() 函数

Python3 内置函数 Python3 内置函数


repr() 是 Python 中用于获取对象可打印表示的内置函数。

repr() 返回一个对象的官方字符串表示,通常可以用来重新创建该对象。它与 str() 的区别在于,repr() 更侧重于调试和开发,而 str() 侧重于用户友好。

单词释义reprrepresentation(表示)的缩写。


基本语法与参数

语法格式

repr(object)

参数说明

  • 参数 object
    • 类型: 任意对象
    • 描述: 要获取其字符串表示的对象。

函数说明

  • 返回值: 返回一个字符串,通常是可以表示该对象的字符串。
  • 特殊方法: 对象可以通过定义 __repr__ 方法自定义返回值。

实例

示例 1:repr() vs str()

实例

# 字符串的区别
s = "hello"
print(f"str: '{str(s)}'")    # 输出: str: 'hello'
print(f"repr: '{repr(s)}'")  # 输出: repr: 'hello'

# 日期时间的区别
from datetime import datetime
dt = datetime.now()
print(f"str: {str(dt)}")
print(f"repr: {repr(dt)}")

# 自定义类的区别
class Person:
    def __init__(self, name):
        self.name = name
    def __str__(self):
        return f"Person: {self.name}"
    def __repr__(self):
        return f"Person(name='{self.name}')"

p = Person("Tom")
print(f"str: {str(p)}")
print(f"repr: {repr(p)}")

运行结果预期:

str: 'hello'
repr: 'hello'
str: 2024-01-15 10:30:45.123456
repr: datetime.datetime(2024, 1, 15, 10, 30, 45, 123456)
str: Person: Tom
repr: Person(name='Tom')

代码解析:

  1. 对于简单字符串,两者结果相同。
  2. 对于日期时间,repr() 返回可以重建对象的表达式。
  3. 自定义类可以分别定义 __str____repr__ 方法。

示例 2:使用 repr() 调试

实例

# 显示隐藏字符
s = "hello\nworld"
print(f"str: {str(s)}")
print(f"repr: {repr(s)}")

# 显示引号
text = "She said 'hello'"
print(f"str: {str(text)}")
print(f"repr: {repr(text)}")

# 在交互式环境中
# 直接输入变量名会调用 repr()

运行结果预期:

str: hello
world
repr: 'hello\nworld'
str: She said 'hello'
repr: "She said 'hello'"

repr() 可以显示隐藏字符(如换行符)和引号,方便调试。


Python3 内置函数 Python3 内置函数