在Python中,repr()函数用于获取一个对象的字符串表示形式,这个字符串是可以用来重新创建该对象的一个有效的表达式;该函数通常被用于调试和日志记录。
在理想情况下,repr()函数的返回值可被用于重构对象:
lst = [1, 2, 3]
lst2 = eval(repr(lst))
print(lst == lst2) # True
与 str() 函数的区别
str()函数返回用户友好的可读字符串;而repr()返回对开发者友好的精确表示。
__repr__() 方法
repr()函数实际调用对象的__repr__()方法:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Person: {self.name}, {self.age}"
def __repr__(self):
return f"Person('{self.name}', {self.age})"
p = Person("Alice", 30)
print(str(p)) # Person: Alice, 30
print(repr(p)) # Person('Alice', 30)
p2 = eval(repr(p))
print(p2.name) # Alice
__repr__()返回的值应该是一个可用于重构对象的有效表达式;