__repr__是Python中用于返回对象官方字符串表示的方法,旨在为开发者提供明确、精确的对象状态描述,理想情况下可还原对象;与面向用户的__str__不同,__repr__用于调试,若未定义__str__则__repr__会被替代使用,最佳实践要求其清晰表达类型与属性并支持eval重建。

__repr__ 在 Python 中是正式的字符串表示形式,用于表示一个对象的“官方”、明确且尽可能精确的字符串描述。
什么是 __repr__?
当开发者或调试工具需要查看一个对象的完整信息时,Python 会调用 __repr__ 方法。它的目标是返回一个能清楚表达该对象状态的字符串,理想情况下,这个字符串可以用来重新创建该对象(例如通过 eval)。例如:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person('{self.name}', {self.age})"p = Person("Alice", 30)
print(repr(p)) # 输出: Person('Alice', 30)
与 __str__ 的区别
__repr__ 是为开发者设计的正式表示,而 __str__ 是为最终用户设计的非正式、更友好的显示方式。- __repr__:用于调试和开发,强调准确性和完整性
- __str__:用于打印或展示给用户,强调可读性
如果没有定义 str,Python 会退而使用 repr 作为替代。
jquery html5音频播放器样式_网页音乐播放器代码,在网页中显示,还可以播放音乐,是不是很高大上,经常用于个人网站中,觉得非常炫酷,php中文网推荐下载呢!
最佳实践
写好 __repr__ 能极大提升调试体验。建议遵循以下原则:- 返回的字符串应清晰表达对象类型和关键属性
- 尽量让返回值可用于重建对象(eval(repr(obj)) == obj)
- 避免省略重要信息或使用模糊描述
基本上就这些。__repr__ 是正式的,面向程序员;而 __str__ 才是非正式的,面向用户。不复杂但容易忽略细节。










