自定义Python对象的显示方式-实例解析__str__与__repr__
需积分: 32 97 浏览量
更新于2024-08-08
收藏 5.68MB PDF 举报
"这篇文档是关于Python编程中改变对象的字符串显示方法的,主要讨论了如何自定义类的`__str__()`和`__repr__()`方法,以便于更直观地展示实例信息。同时,提到了`!r`和`!s`在字符串格式化中的用途,以及Python Cookbook的相关章节,涵盖了数据结构、字符串、日期时间以及迭代器等多个领域的实用技巧。"
在Python中,当需要自定义对象实例的输出形式时,可以重写`__str__()`和`__repr__()`这两个特殊方法。`__str__()`方法用于定义对象转化为字符串的表示,通常在使用`str()`函数或`print()`函数时会被调用。而`__repr__()`方法则返回对象的一个可再现的字符串表示,通常用于调试,能反映出创建该对象的代码形式,这样在交互式解释器中看到的结果就像重新构建了该对象一样。
在提供的代码示例中,定义了一个`Pair`类,它有两个属性`x`和`y`。`__repr__()`方法使用`{0.x!r}`和`{0.y!r}`来确保属性被`repr()`函数处理,这将保证输出的是可执行的Python表达式。而`__str__()`方法则使用`{0.x!s}`和`{0.y!s}`,这会让属性被`str()`函数处理,适合直接打印或显示。通过这种方式,`Pair(3, 4)`的实例在交互式解释器中显示为`Pair(3, 4)`,在`print()`函数中输出为`(3, 4)`。
此外,`!r`和`!s`是字符串格式化语法的一部分,`!r`强制使用`repr()`,`!s`则强制使用`str()`。在类的实例中使用它们,可以控制输出的格式化方式。例如,`p = Pair(3, 4)`实例,使用`print(p)`将调用`__str__()`方法,输出`(3, 4)`,而直接在交互式环境中输入`p`会调用`__repr__()`,输出`Pair(3, 4)`。
这个文档来源于Python Cookbook,这本书是Python编程的实用指南,包含了许多高效解决问题的代码片段。文档中提到的章节涉及到数据结构(如列表、字典的操作)、字符串处理(如分割、匹配、替换等)、日期时间的处理以及迭代器和生成器的使用。这些内容对于深入理解Python编程和提升编程效率非常有帮助。
2024-05-08 上传
2024-05-08 上传
2024-05-18 上传
2023-10-23 上传
2023-04-30 上传
2023-07-31 上传
2023-07-28 上传
2023-09-12 上传
2024-01-25 上传
Big黄勇
- 粉丝: 64
- 资源: 3906
最新资源
- C语言数组操作:高度检查器编程实践
- 基于Swift开发的嘉定单车LBS iOS应用项目解析
- 钗头凤声乐表演的二度创作分析报告
- 分布式数据库特训营全套教程资料
- JavaScript开发者Robert Bindar的博客平台
- MATLAB投影寻踪代码教程及文件解压缩指南
- HTML5拖放实现的RPSLS游戏教程
- HT://Dig引擎接口,Ampoliros开源模块应用
- 全面探测服务器性能与PHP环境的iprober PHP探针v0.024
- 新版提醒应用v2:基于MongoDB的数据存储
- 《我的世界》东方大陆1.12.2材质包深度体验
- Hypercore Promisifier: JavaScript中的回调转换为Promise包装器
- 探索开源项目Artifice:Slyme脚本与技巧游戏
- Matlab机器人学习代码解析与笔记分享
- 查尔默斯大学计算物理作业HP2解析
- GitHub问题管理新工具:GIRA-crx插件介绍