欢迎访问宙启技术站
智能推送

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__()方法。