__repr__是Python中用于返回对象官方字符串表示的方法,旨在为开发者提供明确、精确的对象状态描述,理想情况下可还原对象;与面向用户的__str__不同,__repr__用于调试,若未定义__str__则__repr__会被替代使用,最佳实践要求其清晰表达类型与属性并支持eval重建。
__repr__ 在 Python 中是正式的字符串表示形式,用于表示一个对象的“官方”、明确且尽可能精确的字符串描述。
例如:
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__ 是为最终用户设计的非正式、更友好的显示方式。如果没有定义 str,Python 会退而使用 repr 作为替代。
__ 能极大提升调试体验。建议遵循以下原则:基本上就这些。__repr__ 是正式的,面向程序员;而 __str__ 才是非正式的,面向用户。不复杂但容易忽略细节。