__str__和__repr的区别

__str__
当你打印一个对象的时候 触发__str__
当你使用%s格式化的时候 触发__str__
str强转数据类型的时候  触发__str__

__repr__
repr是str的备胎
有__str__的时候执行__str__,没有实现__str__的时候,执行__repr__
repr(obj)内置函数对应的结果是 __repr__的返回值
当你使用%r格式化的时候 触发__repr__
class Student:
    def __init__(self,name,age):
        self.name = name
        self.age = age
    def __str__(self):
        return 'str: name:%s,age:%s'%(self.name,self.age)
    def __repr__(self):
        return 'repr: name:%s,age:%s'%(self.name,self.age)
s1 = Student('zs',18)
print(s1)

原文地址:https://www.cnblogs.com/linshuhui/p/9567561.html