__str__ 和 __repr__ 的区别
Python 中 __str__ 和 __repr__ 方法有什么区别?各自应该在什么场景下实现?
回答
Yahuda
__repr__:用于开发者,输出精确、无歧义的表示,最好能用来重建对象,通过repr()调用__str__:用于用户,输出可读性好,通过str()或print()调用
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person('{self.name}', {self.age})" # 可重建
def __str__(self):
return f'{self.name} ({self.age})' # 人类可读
如果只实现一个,应实现 __repr__,因为 __str__ 默认回退到 __repr__。