Python中的repr()函数简介及用法详解
发布时间:2023-12-24 22:20:45
在Python中,repr()是一个内置函数,用于返回一个对象的字符串表示形式。它一般用于调试和记录日志的过程中,以便于理解对象的内部结构。repr()函数返回的字符串可以用eval()函数重新解释为原始的对象。
repr()函数有以下特点:
1. 返回的字符串一般是合法的Python表达式,可以通过eval()函数重新解释为原始的对象。
2. 返回的字符串一般是对象在内存中的精确表示,包含了对象的类型和值。
3. 如果对象没有__repr__()方法,则repr()会调用对象的__str__()方法,并返回结果。
下面是repr()函数的使用例子:
例子1:
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __repr__(self):
return f'Point({self.x}, {self.y})'
p = Point(1, 2)
print(repr(p)) # 输出:Point(1, 2)
在这个例子中,Point类实现了__repr__()方法,返回一个字符串,表示Point对象的x和y坐标。调用repr(p)会返回'Point(1, 2)'这个字符串。
例子2:
class Book:
def __init__(self, title, author):
self.title = title
self.author = author
def __str__(self):
return f'Book: {self.title} by {self.author}'
book = Book('Python In Action', 'John Smith')
print(repr(book)) # 输出:Book: Python In Action by John Smith
在这个例子中,Book类没有实现__repr__()方法,但它实现了__str__()方法。所以调用repr(book)会返回'Book: Python In Action by John Smith'这个字符串。
例子3:
class Person:
pass
p = Person()
print(repr(p)) # 输出:\<__main__.Person object at 0x7f9dcacf4400>
在这个例子中,Person类没有实现__repr__()和__str__()方法,但通过调用repr()函数,可以获得p对象在内存中的精确表示。
总结:repr()函数是一个非常有用的工具,用于打印和调试对象。它返回一个对象的字符串表示形式,可以通过eval()函数重新解释为原始的对象。如果对象没有实现__repr__()方法,则会调用对象的__str__()方法。
