Python的__str__()方法
Python的__str__()方法
说明:本文章的Python代码测试基于Python3.x
__str__()
方法的作用:
- 不定义
__str__
方法,print
输出对象实例时,默认打印对象实例的内存地址 - 定义
__str__
方法,print
输出对象实例时,自动调用此方法 - 返回值必须是字符串
- 在Python中,方法名形如
__xxx__()
的方法表示此方法具有特殊的功能,也称为魔法方法
验证
1. 不定义__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>
2. 定义__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
3. 返回值必须是字符串
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)
原文链接:https://blog.csdn.net/what_how_why2020/article/details/114748495
There is no comment, let's add the first one.