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

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函数。