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

你可能感兴趣的:(Python中自定义类如果重写了__repr__方法为什么会影响到str的输出?)