Python对象转字符串详解

掌握 str()、repr() 与自定义 __str__ / __repr__ 方法

为什么需要将对象转为字符串?

在 Python 中,对象默认没有直观的文本表示。当我们打印对象、记录日志或调试程序时,通常希望看到有意义的信息,而不是类似 <__main__.Person object at 0x...> 的内存地址。

Python 提供了多种机制,让我们可以控制对象如何被转换为字符串。

1. 使用内置函数 str()

str(obj) 会调用对象的 __str__ 方法(如果存在),否则回退到 __repr__

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def __str__(self):
        return f"姓名:{self.name},年龄:{self.age}"

p = Person("张三", 25)
print(str(p))   # 输出:姓名:张三,年龄:25
print(p)        # 等价于 print(str(p))

2. 使用内置函数 repr()

repr(obj) 用于“开发者友好”的表示,通常应返回可执行的 Python 表达式(理想情况下)。

class Point:
    def __init__(self, x, y):
        self.x = x
        self.y = y

    def __repr__(self):
        return f"Point({self.x}, {self.y})"

pt = Point(3, 4)
print(repr(pt))  # 输出:Point(3, 4)
# 可直接用于 eval()(谨慎使用)
new_pt = eval(repr(pt))

3. 同时定义 __str____repr__

最佳实践:为类同时实现两个方法。
- __str__ 面向用户,简洁易读。
- __repr__ 面向开发者,准确且可重现。

class Book:
    def __init__(self, title, author):
        self.title = title
        self.author = author

    def __str__(self):
        return f"《{self.title}》 by {self.author}"

    def __repr__(self):
        return f"Book(title='{self.title}', author='{self.author}')"

b = Book("Python编程", "李四")
print(str(b))   # 《Python编程》 by 李四
print(repr(b))  # Book(title='Python编程', author='李四')

4. 默认行为

如果没有定义 __str____repr__,Python 会使用默认的对象表示:

class Empty: pass

e = Empty()
print(e)  # 输出类似:<__main__.Empty object at 0x000001F4A8C2D3A0>

小贴士

我的论文专题页 | 高效写作、降AIGC与学术规范指南 论文写作指南:如何让语言变得更书面化 | 学术写作技巧 使用AI写作文会被查出来吗?- AI文本检测与应对方案 AI写推文全攻略:如何用人工智能高效创作社交媒体内容 | 小发猫降AIGC工具介绍 识别AI:AI检测与AIGC内容识别技术专题 | AI生成内容检测 AI助手写作手机版 - 移动端智能写作工具与降AIGC解决方案 AI检测软件全解析 | 什么软件可以检测AI内容 AI辅助撰写专利:提升专利撰写效率与质量的专业指南 AI读文献神器 - 智能文献阅读与降AIGC工具 | 学术研究助手 AI内容消除会泄露信息吗?- 深度解析与安全工具推荐 AI英文作文写作指南 | 提升英语写作效率与质量的智能工具 论文查AI技术发展史 | AI检测工具演进与降AI率方法详解 SCI论文用AI写会被发现吗?AI写作检测与规避方法详解 论文文献综述能用AI写吗?AI写作工具与学术诚信深度解析 未来AI技术突破与预测 | AI发展趋势与关键技术解析 AI写作助手怎么取消?如何有效降低AI写作率 | 小发猫工具使用指南 本科毕业论文如何获得优秀分数 | 论文写作指南与AI降重工具 AI论文写作工具全攻略 | 哪里找到合适的AI写作工具与降AIGC技巧 AI创作3000字文章专题 | 高效内容生成与降AIGC解决方案 本科毕业设计查重率指南 | 如何降低论文查重率 | 学术规范 论文AI查重低风险能否通过答辩?| AI论文检测与降重指南 知网AI检测网址 | 专业AI内容检测工具与降AIGC解决方案 SCI论文剽窃检测软件 - 专业学术诚信解决方案 | 论文查重降重工具 医学论文投稿快速发表指南 | 高效投稿技巧与期刊选择策略 论文错别字检测 | PDF格式智能校对工具 | 专业论文排版检查 论文写作AI助手检测指南 | 如何有效检测AI生成内容与降AIGC技巧 珠海论文辅导 | 专业学术论文指导与AIGC内容优化服务 AI长度测量技术详解 | 文本分析工具与AIGC检测方法 免费论文检测网站大全 | 权威查重降重工具推荐 英文论文语法检测完全指南 | 专业工具与技巧 知网论文AIGC查重指南 - 如何通过知网检测AI生成内容 论文写作辅助:AI工具在学术写作中的应用与规范 | 学术AI助手指南 AI朗读软件全面解析 | 智能语音合成技术应用与工具推荐 AI软件写论文指南:高效工具与AIGC检测规避方法 AI论文图片大全 | 人工智能学术图表资源与AIGC检测工具 论文纠错软件App - 专业论文校对与AI降重工具推荐 AI平面广告设计:创新工具与降AIGC技术应用指南 微信AI写作业专题 - 智能学习辅助与原创性保障指南 自引率和他引率区别解析 | 文献引用指标专题 AI与法律论文专题:法律人工智能应用、伦理与降AIGC工具使用指南 本科毕业论文在网上泄露概率分析 | 如何保护学术成果 论文查重检测指南 | 专业方法与降AI率解决方案 AI识别写作软件全解析 | 识别与优化AI生成内容 AI论文阅读网站 | 高效阅读人工智能学术论文的专业工具 AI写毕业设计软件指南 | 智能工具应用与降AIGC方案 AI生成图鉴定指南 | 如何识别和降低AI生成图像的AI率 学术论文的写作价值与降AIGC工具应用 | 学术研究专题 毕业设计查重软件推荐 | 高效降低重复率与AIGC检测率 如何辨别论文数据真实性 | 学术诚信与数据验证指南 网上写字课程专题 - 专业书法教学,提升书写水平 论文插图AI处理指南 | 高质量学术插图制作与降AIGC率技巧 AI技术论文研究专题 - 人工智能学术写作指南与AIGC降重工具 英文论文查重率怎么降低 | 专业降重方法与工具推荐 论文检测与查询 - 专业学术论文查重与AIGC降重工具指南 论文去重软件免费 | 高效降低重复率与AIGC风险的专业工具指南 英文论文降低查重技巧 | 专业降AI率方法与工具指南 论文查重全攻略:方法与工具详解 | 学术诚信指南 论文不会写找谁?- 专业写作指南与AI工具辅助方案 论文AI7LONGWEN | AI论文助手与降AIGC工具使用指南 本科论文需要AIGC检测吗?论文AI率检测与降重指南 朋友圈AI助手 | 智能生成朋友圈内容,小发猫降AIGC工具防检测 如何检查AI文字是否被扩展 | AI内容检测与优化指南 如何让论文摘要不红 | 学术写作AI检测规避与降重技巧 AI长篇写作网站专题 - 高效AI写作工具与降AIGC解决方案 论文修订模式怎么去掉 - 详细教程与降AIGC工具推荐 如何查询自己的论文级别 | 学术论文等级查询指南 AI生成开题报告会被查出来吗?- 学术写作与AI检测全解析 AI文字生成短视频:原理、应用与降AIGC处理指南 中国AI写作会被发现吗?AI内容检测与降AIGC工具解析 好用的AI写文章生成报告工具推荐 | 智能写作与AIGC检测 论文拼凑算抄袭吗?- 学术诚信与论文原创性解析 AI可检测出几十种租房合同漏洞 | 智能合同审查技术专题 论文批注如何消失 - 解决方案与工具介绍 AI有隐私吗?探索人工智能时代的隐私保护与挑战 国内AI搜索软件专题:智能搜索工具全面解析与应用指南 专业论文翻译成中文服务 | 学术翻译与降AIGC解决方案 能写8000字论文的AI工具深度解析 | AI论文写作专题 论文真假查询指南 | 学术诚信检测与AIGC内容识别 当代爱情观研究:社会学与心理学视角下的爱情论文专题 论文被质疑怎么回复 - 学术诚信与专业回应指南 大学毕业论文写作地点指南:一定要在学校完成吗? | 论文写作专题 AI写专利:智能化专利撰写与降AI率工具指南 | 专利写作专题 AI生成作文在哪里?探索AI写作工具与降低AI率方法 初一作文指导:如何写爱的作文结尾技巧与范例 | 情感表达写作 论文怎么删除修订痕迹 | 完整操作指南与AI内容处理技巧 如何判断论文质量好不好 | 学术论文评估指南与降AI率技巧 哪家手机的AI创作最好?2026年主流手机AI创作能力全面评测 如何创作一篇优秀作文 | 写作技巧与工具分享 爱写作素材 - 专业内容创作灵感与降AIGC工具使用指南 本科毕业设计教程 - 从开题到答辩的完整指南 | 毕业设计专题 论文抄袭检测报告 | 学术诚信与AI内容检测指南 AI万能写作小程序 - 智能创作助手,高效内容生成解决方案 文章写作AI工具推荐 | 2024年最佳AI写作助手与降AIGC工具 免费AI写作工具推荐 | 2026年最佳AI写文章工具评测 AI提示词是通用的吗?深入解析提示词的通用性与定制化 | AI专题 AI创作文章免费版 - 智能写作工具与降AIGC解决方案 AI绘画制作教程 - 从入门到精通 | 人工智能绘画指南 2026年论文查重率解析 | 降重技巧与工具推荐 中国知网AI检测报告专题解读 | 如何识别与降低AIGC内容 AIGC查重标准解析:论文AIGC率多少算合格? | 学术诚信指南