Python中repr与str的区别和联系
在Python中,每个对象都有一个默认的字符串表示方法,即__str__() 方法和__repr__() 方法。这两个方法的作用是将数据转换成字符串类型,以便输出或者在交互式环境中查看对象的值。
那么,str() 方法和__repr__() 方法的作用有什么区别呢?我们先来看一下它们各自的返回值。
str() 方法返回一个可读性强的字符串,用于展示给用户看。例如:
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"I'm {self.name}, and I'm {self.age} years old."
p = Person("Tom", 18)
print(p) # 输出:"I'm Tom, and I'm 18 years old."
repr() 方法返回一个准确的字符串,用于开发者调试和记录程序状态。例如:
class Person:
def __init__(self, name, age):