Python的__str__()方法
说明:本文章的Python代码测试基于Python3.x
__str__()方法的作用:
- 不定义
__str__方法,print输出对象实例时,默认打印对象实例的内存地址 - 定义
__str__方法,print输出对象实例时,自动调用此方法 - 返回值必须是字符串
- 在Python中,方法名形如
__xxx__()的方法表示此方法具有特殊的功能,也称为魔法方法
验证
- 不定义
__str__方法,print输出对象实例时,默认打印的是对象的内存地址
# 创建学生类
class Stu():
def __init__(self, name, age):
self.name = name
self.age = age
s = Stu("张三", 18)
print(s)
输出:
<__main__.Stu object at 0x000002526AF05A60>
- 定义
__str__方法,print输出对象实例时,自动调用此方法
class Stu():
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return "学生" + self.name + "的年龄是" + str(self.age)
s = Stu("张三", 18)
# 打印对象实例
print(s)
输出:
学生张三的年龄是18
- 返回值必须是字符串
class Stu():
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return self.age
s = Stu("张三", 18)
print(s)
输出:
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
7
8 s = Stu("张三", 18)
----> 9 print(s)
TypeError: __str__ returned non-string (type int)
因为__str__()返回值非字符串,所以报错TypeError: __str__ returned non-string (type int)
参考文章:
本文介绍了Python中__str__方法的基本用法及其重要性。当未定义该方法时,打印对象将显示其内存地址;定义后,则会输出指定的字符串形式。文章通过示例解释了如何正确使用__str__,并强调了其返回值必须为字符串。
4315

被折叠的 条评论
为什么被折叠?



