事实上__repr__与__str__都是用来显示的,输出字符串,区别为: 1)__str__的输出对用户比较友好,适合print输出;__repr__的输出对python友好,适合eval函数得到原来的对象。 2)__str__是面向用户的,而__repr__面向程序员的 3)执行打印操作时会优先使用__str__而非__repr__需要repr函数: print(repr(err)) 重构__str__和__repr__使其在面对用户和面对开发者时的输出不同,提高效率