__str__和__repr__

__str__(self)

打印对象时print(obj)时会触发__str__的执行。

class A:
    def __str__(self):
        return 'str执行了'
    
    def __repr__(self):
        return 'repr执行了'

a = A()
print(a)
str执行了

__repr__(slef)

在命令行中直接输入对象名称即会触发执行。

>>> class A:
...     def __str__(self):
...             print('str执行了')
...     def __repr__(self):
...             return 'repr执行了'
...
>>> a = A()
>>> a
repr执行了

__str__和__repr__的返回值有且必须为字符串。如果没有重写__str__,会触发__repr__,再没写,打印出内存地址。


原文地址:https://www.cnblogs.com/ChiRou/p/14238002.html