1、__str__方法返回一个字符串,当对象被转换为字符串时,Python会自动调用该方法。
# 示例1 # 未定义__str__方法 class A: pass # 实例化对象 a = A() print(a) """控制台输出:<__main__.a object="" at="" 0x0000022241ef18e0=""> 是我们看不懂的信息,因为没有定义__str__方法,输出包含类型名称和十六进制内存地址的对象表示"""
# 示例2 # 定义__str__方法 class A: def __str__(self): return "哈哈哈哈" # 返回值必须是字符串! # return 1233 # TypeError: __str__ returned non-string (type int);不能是其他类型的数据! # 实例化对象 a = A() print(a) # 哈哈哈哈 定义了__str__方法,输出__str__方法的返回值
注意:__str__方法必须返回一个字符串
2、__str__方法的作用:
通过定义__str__方法,可以确保输出或记录对象时,输出的是易于理解的信息,而不是默认的、可能不太有用的类型名称和内存地址。这有助于提高代码的可读性和可维护性。
# 示例
class Person:
def __init__(self, name, age, sex):
self.name = name
self.age = age
self.sex = sex
def __str__(self):
return f"姓名:{self.name},年龄:{self.age},性别:{self.sex}"
# 实例化对象
p1 = Person("张三", 18, "男")
print(p1)著作权归文章作者所有。 未经作者允许禁止转载!