Python | 魔法函数`__str__`的用法
__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__()
中有返回值,就会打印其中的返回值。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)