Python repr() 函数

Python repr() 语法

repr() 是 Python 的一个内置函数,它用于获取某个对象的字符串形式,类似于 str() 函数。在实际开发中,repr() 函数通常用于调试、日志记录、开发等。

语法:

repr(obj)

说明:

repr() 函数接收单个参数。

  • obj(必选):它可以是任意的 Python 对象。由于 Python 一切皆对象,像数字、字符串等本质上也是对象。

提示: repr 是 “representation(描述)” 的缩写,该描述是并非是针对 “用户友好” 的描述,而是针对 “机器友好” 的描述。

Python repr() 摘要

使用频率
官方文档 查看

Python repr() 示例

接下来,我们通过几个简单的例子来讲解一下 Python repr() 函数是如何使用的。

示例 1:repr() 基本用法

a = 666
print(repr(a))

b = '绿叶网'
print(repr(b))

c = [1, 2, 3]
print(repr(c))

运行结果如下。

666
'绿叶网'
[1, 2, 3]

分析:

需要注意的是,b 是一个字符串,然后 repr() 会把整个字符串以及它的引号都会转换为字符串形式。

示例 2:自定义类的 repr()

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age
    def __str__(self):
        return self.name
    def __repr__(self):
        # 最佳实践:返回一个看起来像对象实例化代码的字符串
        return f"Person('{self.name}', {self.age})"

p = Person('Jack', 20)
print(str(p))
print(repr(p))

运行结果如下。

Jack
Person('Jack', 20)

分析:

如果想要自定义 repr() 函数的返回值,我们只需要在该对象对应的类中定义 __repr__() 方法即可。

repr() 与 str() 的区别

repr() 和 str() 这两个函数都可以用于获取某个对象的字符串表示形式,虽然咋一看它们很相似,但它们之间还是有一定区别。

  • repr():获取对象的字符串形式,目标是 “无歧义”。它在控制台输出时带有引号,因此它对机器(Python)更为友好。
  • str():获取对象的字符串形式,目标是 “可读性”。它在控制台输出时不带引号,因此它对用户更为友好。

在实际开发中,大多数情况下我们使用的都是 str(),而 repr() 比较少用到。

示例 3:repr() vs str()

s = 'Hello lvye'
print(repr(s))
print(str(s))

运行结果如下。

'Hello lvye'
Hello lvye

上一篇: memoryview()

下一篇: abs()

给站长反馈

绿叶网正在不断完善中,小伙伴们如果发现任何问题,还望多多给站长反馈,谢谢!

邮箱:lvyenet@vip.qq.com

「绿叶网」服务号
绿叶网服务号放大
关注服务号,微信也能看教程。
绿叶网服务号