为了账号安全,请及时绑定邮箱和手机立即绑定

Python 的内置函数 repr

标签:
Python API

Python 的内置函数 repr() 用于获取对象的"官方"字符串表示形式,通常是可以被 Python 解释器直接执行的代码形式。这个函数与 str() 函数不同,后者返回的是对象的"非正式"或可读性更好的字符串表示。

功能特点

  1. 可执行性repr() 返回的字符串理论上可以通过 eval() 函数重新构造出原对象
  2. 调试友好:主要用于调试和开发时查看对象的精确表示
  3. 类定制:可以通过定义 __repr__ 方法来自定义类的 repr() 输出

与 str() 的区别

  • str() 面向用户,追求可读性
  • repr() 面向开发者/解释器,追求准确性
  • 当对象没有定义 __str__ 方法时,Python 会使用 __repr__ 作为替代

使用示例

# 基本数据类型
print(repr(123))      # '123'
print(repr('abc'))    # "'abc'"

# 容器类型
print(repr([1, 2, 3]))  # '[1, 2, 3]'

# 自定义类
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)
print(repr(p))  # Point(3, 4)

最佳实践

  1. 自定义类时应该总是实现 __repr__ 方法
  2. __repr__ 应该返回一个包含足够信息的字符串,能够重建对象
  3. 理想情况下,eval(repr(obj)) == obj 应该为真

应用场景

  • 调试时快速查看对象状态
  • 日志记录中需要精确的对象表示
  • 需要序列化/反序列化对象的场合
  • 实现 REPL(交互式解释器)环境时

注意:虽然 repr() 的输出通常可以被 eval() 执行,但这不是强制要求,特别是对于某些内置类型或复杂对象。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消