str和repr的理解与区别

本文深入探讨了Python中str和repr方法的区别与应用。str方法主要用于面向用户展示对象的友好信息,而repr方法则更多地服务于程序员,提供精确的对象描述。通过一个具体的类实例化过程,展示了两种方法的不同输出结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

strrepr的理解与区别

class Me(object):

    def __init__(self, name, hobby):
        self.name = name
        self.hobby = hobby

    def __str__(self):
        return (' __str__(): '+self.name + '   ' + self.hobby)

    def  __repr__(self):
        return ('__repr__(): '+self.name + '   ' + self.hobby)


me = Me('frank', 'swiming')
me
print(me)
结果为:
 __repr__(): frank   swiming
 __str__(): frank   swiming

reprstr这两个方法都是用于显示的,str是面向用户的,而repr面向程序员。

Python中,类的特殊方法`__repr__``__str__`都是用来返回对象的字符串表示形式,但是它们的用途输出方式略有不同。 `__repr__`方法的作用是返回一个对象的“官方”字符串表示形式,通常包含足够的信息以便于重建该对象。在交互式环境中,直接输入对象名称并执行时,会自动调用该对象的`__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', 25) print(p) # 输出:Person('Alice', 25) ``` `__str__`方法的作用是返回一个对象的可读性较好的字符串表示形式,通常用于打印输出显示给用户看。当使用`str()`函数或者`print()`函数输出一个对象时,会自动调用该对象的`__str__`方法。例如: ```python class Person: def __init__(self, name, age): self.name = name self.age = age def __str__(self): return f"{self.name} is {self.age} years old" p = Person('Alice', 25) print(p) # 输出:Alice is 25 years old ``` 需要注意的是,如果一个对象没有定义`__str__`方法,但是定义了`__repr__`方法,则在使用`str()`函数或者`print()`函数输出该对象时,会默认使用`__repr__`方法返回的字符串表示形式。反之亦然,如果一个对象没有定义`__repr__`方法,则在交互式环境中直接输入该对象名称并执行时,会默认使用`__str__`方法返回的字符串表示形式。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值