python - Python __str__ 内类混淆
问题描述
我已经看到这个术语__str__
在 Python 的类中被大量使用。我试图查找它的含义及其功能,但许多网站都教它与 Java 功能toString
或__repr__
. 由于我不是来自 Java 背景,因此我很难以这种方式学习它。我也看到人们将它与函数进行比较,str()
但我不知道它有多准确或以何种方式。
有人可以简单地向我解释一下吗?谢谢。
解决方案
当 Python 需要将类实例转换为字符串时,它会调用它的__str__()
方法。如果没有,__str__()
它会重新回到__repr__()
. 如果类没有定义这些方法中的任何一个,它通常会从object
基类继承它们,基类返回一个字符串,如<className object at 0x1234>
这由str()
函数使用,以及格式化方法str.format()
,如字符串%
运算符和 f 字符串。因此,定义该__str__()
方法允许您自定义类中的对象在消息中的显示方式。
类似地,repr()
函数调用__repr__()
方法。此方法通常旨在返回包含更适合调试和/或解析的表示的字符串,而不是用于最终用户显示。
推荐阅读
- google-cloud-platform - 以编程方式获取 GCP 上的当前服务帐户
- matlab - cftool 不适合自定义拟合
- asp.net-core - How can I remove slash in route of controller?
- ios - how to select xcode version in fastlane when using github actions
- python - Smoothening a curve in Python
- ios - iOS Notification Extension to load media not called
- javascript - 跨浏览器扩展后台脚本导入错误
- android - WebView init 出现异常:无法创建锁定文件 webview_data.lock EACCES(权限被拒绝)
- python - 如何从值列表中自动填充 if/elif 块?
- symfony - 过滤器选择 Symfony Dom Crawler