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