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函数通常不适合直接展示给人类阅读,而更适合用于调试和内部处理。
