首页 > 解决方案 > Python __str__ 内类混淆

问题描述

我已经看到这个术语__str__在 Python 的类中被大量使用。我试图查找它的含义及其功能,但许多网站都教它与 Java 功能toString__repr__. 由于我不是来自 Java 背景,因此我很难以这种方式学习它。我也看到人们将它与函数进行比较,str()但我不知道它有多准确或以何种方式。

有人可以简单地向我解释一下吗?谢谢。

标签: python

解决方案


当 Python 需要将类实例转换为字符串时,它会调用它的__str__()方法。如果没有,__str__()它会重新回到__repr__(). 如果类没有定义这些方法中的任何一个,它通常会从object基类继承它们,基类返回一个字符串,如<className object at 0x1234>

这由str()函数使用,以及格式化方法str.format(),如字符串%运算符和 f 字符串。因此,定义该__str__()方法允许您自定义类中的对象在消息中的显示方式。

类似地,repr()函数调用__repr__()方法。此方法通常旨在返回包含更适合调试和/或解析的表示的字符串,而不是用于最终用户显示。


推荐阅读