__str__
是 Python 内置函数,用于将对象转换为字符串表示形式。在 Python 中,每个类都可以重写 __str__
方法,以便自定义对象的字符串表示形式。
当使用 print
函数将对象输出到控制台时,Python 会自动调用对象的 __str__
方法,将其转换为字符串并输出到控制台。因此,对于一个自定义的类,如果想要在输出时以某种格式呈现类的实例对象,可以通过重写 __str__
方法来实现。
__str__
是Python中类对象自带的一个函数(通过其名字也能看出来,和__self__
类似),那么它有什么作用呢?首先敲出下面的代码运行一下看看结果是什么:
class Person(object):
def __init__(self, name = 'tom', age = 10):
self.name = name
self.age = age
self.parent = None
tom = Person()
print(tom)
# 唔,在我这里输出了个看起来像是地址的东西
# >>> <__main__.Person object at 0x00000244B4A2EA90>
所以当我们打印一个实例化对象时,打印的其实是这个对象的地址。而通过自定义__str__()
函数就可以帮助我们打印对象中相关的内容。
class Person(object):
def __init__(self, name = 'tom', age = 10):
self.name = name
self.age = age
self.parent = None
def __str__(self):
return "Your name is: " + self.name
tom = Person()
print(tom)
# 唔,果然输出了我们自定义的内容
# >>> Your name is: tom
总结:在python中调用print()打印实例化对象时会调用__str__()
函数,如果__str__()
中有返回值,就会打印其中的返回值。