Python(repr())
目录
- 1.
repr函数 - 2. 示例代码
- 3.
repr与str的区别
在 Python 中,repr 是 representation 的缩写。它是一个内置函数,用于返回对象的官方字符串表示形式。这通常是一个可以用来重新创建对象的字符串,或者至少是对开发者友好的字符串,便于调试和理解对象的内容。
在代码中,return repr(self.value) 的作用是返回 self.value 的官方字符串表示形式。让我们更详细地看看这个函数的用途和行为:
1. repr 函数
-
官方字符串表示:
repr函数返回一个对象的官方字符串表示,这个表示通常是可以用来重新创建这个对象的表达式(如果这是可能的)。- 当你在控制台中直接输入对象时,Python 也会调用
repr函数来显示对象的字符串表示。
-
调试友好:
repr函数返回的字符串通常比str函数返回的字符串更详细,适合开发和调试使用。- 例如,
repr会在字符串周围加上引号,并转义特殊字符,使其更易于理解和调试。
2. 示例代码
假设有一个类,其中包含一个 value 属性,并且该类的 __repr__ 方法使用 repr 函数返回 value 的表示形式:
class MyClass:
def __init__(self, value):
self.value = value
def __repr__(self):
return repr(self.value)
# 创建一个对象
obj = MyClass("Hello, world!")
# 打印对象
print(repr(obj)) # 输出:'Hello, world!'
在上面的示例中:
MyClass类有一个value属性。__repr__方法返回self.value的官方字符串表示。- 当我们使用
print(repr(obj))打印对象时,它显示的是self.value的官方字符串表示,即'Hello, world!'。
3. repr 与 str 的区别
repr(obj)返回的字符串应该尽可能是合法的 Python 表达式,可以用来重建对象。str(obj)返回的是一个可读性更强的字符串表示,适合展示给用户。
例如:
import datetime
now = datetime.datetime.now()
print(repr(now)) # 输出:datetime.datetime(2024, 7, 10, 12, 34, 56, 789012)
print(str(now)) # 输出:2024-07-10 12:34:56.789012
在这个例子中,repr(now) 返回的是一个可以用来重新创建 now 对象的表达式,而 str(now) 返回的是一个更易读的日期时间字符串。