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

Python中repr函数的用法及示例

发布时间:2023-12-14 21:02:38

Python中的repr函数是一个内置函数,用于返回一个对象的字符串表示形式。它的作用类似于str函数,不同之处在于repr函数返回的字符串是一个可以用来重新创建对象的表达式,而str函数返回的字符串更适合人类阅读。

repr函数的语法如下:

repr(object)

其中,object是要表示为字符串的对象。

下面是一些使用repr函数的示例:

1. 对于简单的数据类型,repr函数的输出通常就是该类型的字面值的字符串形式:

print(repr(1))  # 输出结果为'1'
print(repr(3.14))  # 输出结果为'3.14'
print(repr('hello'))  # 输出结果为"'hello'"

2. 对于自定义的类,可以通过在类中定义__repr__方法来控制repr函数的输出:

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)'

3. 对于容器类型(如列表、字典、集合等),repr函数会递归调用容器元素的repr方法来生成字符串表示:

numbers = [1, 2, 3]
print(repr(numbers))  # 输出结果为'[1, 2, 3]'

person = {'name': 'Alice', 'age': 30}
print(repr(person))  # 输出结果为"{'name': 'Alice', 'age': 30}"

4. 对于某些特殊类型的对象,repr函数的输出可能会包含更多有用的信息。例如,对于文件对象,repr函数会返回文件的路径:

file = open('example.txt', 'r')
print(repr(file))  # 输出结果为"<_io.TextIOWrapper name='example.txt' mode='r' encoding='UTF-8'>"

5. repr函数可以用来调试程序,以便查看对象的内部结构和状态。例如,在调试过程中,可以将对象的repr字符串打印出来:

class Book:
    def __init__(self, title, author):
        self.title = title
        self.author = author
        
    def __repr__(self):
        return f'Book(title={self.title}, author={self.author})'
        
book = Book('Python Crash Course', 'Eric Matthes')
print(repr(book))  # 输出结果为"Book(title=Python Crash Course, author=Eric Matthes)"

总结一下,repr函数用于返回一个对象的字符串表示形式,在大多数情况下,它返回的字符串可以被eval函数用来重新创建对象。repr函数通常不适合直接展示给人类阅读,而更适合用于调试和内部处理。