Python中自定义类如果重写了__repr__方法为什么会影响到str的输出?

这是因为Python3中,str的输出是调用类的实例方法__str__来输出,如果__str__方法没有重写,则自动继承object类的__str__方法,而object类的__str__方法是调用__repr__方法,因此自定义类未重写__str__方法的情况下,实际上就是调用该类的__repr__方法,因此__repr__方法重写会影响到str的输出,除非在自定义类中也重写__str__方法才可以单独输出信息。

具体可参考:
《Python __repr__方法和__str__方法、内置函数repr和str的异同点对比剖析》
《Python重写自定义类的__repr__方法》
《 Python重写自定义类的__str__方法》

老猿Python,跟老猿学Python! 博客地址:https://blog.csdn.net/LaoYuanPython

原文地址:https://www.cnblogs.com/LaoYuanPython/p/11144500.html