Python中repr函数的常见用法总结
发布时间:2023-12-14 21:13:50
repr函数是Python内置的一个函数,用于将对象转换为字符串表示形式,在调试和输出对象时经常使用。它返回的字符串通常可以直接作为Python表达式来求值,用来重现该对象。
下面是repr函数的几种常见用法及使用示例:
1. 显示对象的类名和内存地址
repr函数可以返回对象的字符串表示形式,包括对象的类名和内存地址。这对于调试和区分不同对象非常有用。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f'Person(name={self.name}, age={self.age})'
p = Person("Alice", 25)
print(repr(p))
# 输出:Person(name=Alice, age=25)
2. 生成用于求值的字符串表示
repr函数返回的字符串通常可以作为Python表达式求值,可以使用eval函数来重新创建原对象。
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(3, 4)
s = repr(p)
new_p = eval(s) # 使用eval函数重新创建对象
print(new_p)
# 输出:Point(3, 4)
3. 字符串的转义
repr函数可以将字符串转义,将特殊字符用转义序列表示,用于生成可打印的字符串。
s = "Hello, World! " print(s) # 输出: # Hello, World! # print(repr(s)) # 输出:'Hello, World! '
4. 调试时显示信息
repr函数常用于调试过程中显示信息,可以在自定义类的__repr__方法中使用。
class Rectangle:
def __init__(self, width, height):
self.width = width
self.height = height
def __repr__(self):
return f'Rectangle(width={self.width}, height={self.height})'
r = Rectangle(10, 5)
print(repr(r))
# 输出:Rectangle(width=10, height=5)
5. 对象的深层结构显示
repr函数可以用于显示对象的深层结构,比如列表、字典等复杂的数据结构。
animals = {'dog': ['German Shepherd', 'Golden Retriever'], 'cat': ['Persian', 'Siamese']}
print(repr(animals))
# 输出:{'dog': ['German Shepherd', 'Golden Retriever'], 'cat': ['Persian', 'Siamese']}
6. 显示非ASCII字符
repr函数在处理非ASCII字符时,会对其进行编码并使用转义字符表示,以确保输出是可读的。
s = "你好" print(repr(s)) # 输出:'\u4f60\u597d'
综上所述,repr函数在Python中有多种用法,可以用于显示对象的类名和内存地址、生成用于求值的字符串表示、字符串转义、调试时显示信息、显示对象的深层结构以及显示非ASCII字符等。在实际开发中,我们可以根据具体的需求合理使用repr函数。
