__str__和__repr__用法,区别

__str__方法用途
str 方法是 Python 中一个特殊的方法,用于定义对象的“字符串表示”。当你使用 print() 函数或 str() 函数来输出一个对象时,Python 会调用对象的 str 方法。这个方法应该返回一个易于阅读的字符串,通常用于向用户展示对象的基本信息。

用途:

  1. 用户友好的输出str 方法通常用于提供一个对用户友好的字符串表示,便于理解对象的内容和状态。
  2. 调试:通过定义 str 方法,可以更方便地查看对象的状态,有助于调试程序。
  3. 自定义格式:可以根据需要自定义对象的输出格式,以适应特定的需求。
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 来提供详细的、开发者友好的输出,通常用于调试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值