__str__方法用途
str 方法是 Python 中一个特殊的方法,用于定义对象的“字符串表示”。当你使用 print() 函数或 str() 函数来输出一个对象时,Python 会调用对象的 str 方法。这个方法应该返回一个易于阅读的字符串,通常用于向用户展示对象的基本信息。
用途:
- 用户友好的输出: str 方法通常用于提供一个对用户友好的字符串表示,便于理解对象的内容和状态。
- 调试:通过定义 str 方法,可以更方便地查看对象的状态,有助于调试程序。
- 自定义格式:可以根据需要自定义对象的输出格式,以适应特定的需求。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"姓名: {self.name}, 年龄: {self.age}"
# 创建一个 Person 对象
person = Person("张三", 30)
# 打印对象
print(person) # 输出: 姓名: 张三, 年龄: 30
__repr__方法用途
- 主要用于生成官方字符串表示,通常是为了开发者调试和开发使用。
- 当你在交互式解释器中输入对象名,或者使用 repr() 函数时,会调用 repr 方法。
- 目标是提供一个尽可能准确和完整的输出,通常可以用来重新创建该对象。
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person(name='{self.name}', age={self.age})"
person = Person("张三", 30)
print(repr(person)) # 输出: Person(name='张三', age=30)
总结:
- 使用 str 来提供用户友好的输出。
- 使用 repr 来提供详细的、开发者友好的输出,通常用于调试。