Python repr() 函数
repr() 是 Python 中用于获取对象可打印表示的内置函数。
repr() 返回一个对象的官方字符串表示,通常可以用来重新创建该对象。它与 str() 的区别在于,repr() 更侧重于调试和开发,而 str() 侧重于用户友好。
单词释义: repr 是 representation(表示)的缩写。
基本语法与参数
语法格式
repr(object)
参数说明
- 参数 object:
- 类型: 任意对象
- 描述: 要获取其字符串表示的对象。
函数说明
- 返回值: 返回一个字符串,通常是可以表示该对象的字符串。
- 特殊方法: 对象可以通过定义
__repr__方法自定义返回值。
实例
示例 1:repr() vs str()
实例
# 字符串的区别
s = "hello"
print(f"str: '{str(s)}'") # 输出: str: 'hello'
print(f"repr: '{repr(s)}'") # 输出: repr: 'hello'
# 日期时间的区别
from datetime import datetime
dt = datetime.now()
print(f"str: {str(dt)}")
print(f"repr: {repr(dt)}")
# 自定义类的区别
class Person:
def __init__(self, name):
self.name = name
def __str__(self):
return f"Person: {self.name}"
def __repr__(self):
return f"Person(name='{self.name}')"
p = Person("Tom")
print(f"str: {str(p)}")
print(f"repr: {repr(p)}")
s = "hello"
print(f"str: '{str(s)}'") # 输出: str: 'hello'
print(f"repr: '{repr(s)}'") # 输出: repr: 'hello'
# 日期时间的区别
from datetime import datetime
dt = datetime.now()
print(f"str: {str(dt)}")
print(f"repr: {repr(dt)}")
# 自定义类的区别
class Person:
def __init__(self, name):
self.name = name
def __str__(self):
return f"Person: {self.name}"
def __repr__(self):
return f"Person(name='{self.name}')"
p = Person("Tom")
print(f"str: {str(p)}")
print(f"repr: {repr(p)}")
运行结果预期:
str: 'hello' repr: 'hello' str: 2024-01-15 10:30:45.123456 repr: datetime.datetime(2024, 1, 15, 10, 30, 45, 123456) str: Person: Tom repr: Person(name='Tom')
代码解析:
- 对于简单字符串,两者结果相同。
- 对于日期时间,
repr()返回可以重建对象的表达式。 - 自定义类可以分别定义
__str__和__repr__方法。
示例 2:使用 repr() 调试
实例
# 显示隐藏字符
s = "hello\nworld"
print(f"str: {str(s)}")
print(f"repr: {repr(s)}")
# 显示引号
text = "She said 'hello'"
print(f"str: {str(text)}")
print(f"repr: {repr(text)}")
# 在交互式环境中
# 直接输入变量名会调用 repr()
s = "hello\nworld"
print(f"str: {str(s)}")
print(f"repr: {repr(s)}")
# 显示引号
text = "She said 'hello'"
print(f"str: {str(text)}")
print(f"repr: {repr(text)}")
# 在交互式环境中
# 直接输入变量名会调用 repr()
运行结果预期:
str: hello world repr: 'hello\nworld' str: She said 'hello' repr: "She said 'hello'"
repr() 可以显示隐藏字符(如换行符)和引号,方便调试。
Python3 内置函数
点我分享笔记