先告诉大家__str__()方法与__repr__()方法的返回值必须都是字符串,否则就会抛出异常。
看这一段代码
class Person(object):
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def __str__(self):
return "str-->我的名字是%s,我今年%s岁了,我是%s孩子" % (self.name, self.age, self.sex)
def __repr__(self):
return "repr-->我的名字是%s,我今年%s岁了,我是%s孩子" % (self.name, self.age, self.sex)
# 实例化一个对象
p = Person("丁七岁", 19, "男")
print("str方法:", str(p))
print("repr方法:", repr(p))
运行结果
至于这两个方法的区别:
当我们使用str函数或者print函数调用时,他是用的__str__()
当我们使用repr或者交互式解释器中调用时,他是用的__repr__()