Python 类的 __repr__
方法是一个魔法方法,用于返回一个对象的字符串表示形式。这个方法的主要目的是使对象的输出更容易阅读和理解。在使用 print()
函数输出对象时,如果没有实现这个方法,会默认输出对象的地址信息,不方便查看。
下面是实现 __repr__
方法的基本语法:
class ClassName:
def __repr__(self):
return "字符串形式的对象表示"
__repr__
方法的返回值应该是一个字符串,表示对象的字符串形式。这个字符串应该具有表达力,在需要排错的时候,也尽可能明确地概括对象的属性和状态。
下面是一个简单的示例,演示如何使用 __repr__
方法打印自定义的字符串形式的类对象:
class User:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"User,姓名:{self.name},年龄:{self.age}"
user = User("张三", 18)
print(user)
输出结果为:
User,姓名:张三,年龄:18
这样输出,我们就可以更方便地查看 user
对象的属性信息。
接下来,我们使用一个更复杂的示例,演示如何使用 __repr__
方法来输出更详细的对象信息:
class Student:
def __init__(self, name, gender, score):
self.name = name
self.gender = gender
self.score = score
def __repr__(self):
return f"学生姓名:{self.name}\n性别:{self.gender}\n成绩:{self.score}"
def __str__(self):
return f"学生姓名:{self.name}\t性别:{self.gender}\t成绩:{self.score}"
student = Student("张三", "男", 90)
# 输出详细信息
print(repr(student))
# 输出简洁信息
print(student)
输出结果为:
学生姓名:张三
性别:男
成绩:90
学生姓名:张三 性别:男 成绩:90
在这个示例中,我们不仅实现了 __repr__
方法,还重载了 __str__
方法,用于输出简洁的对象信息。通常情况下,__str__
方法的输出比 __repr__
方法更加简洁,主要用于展示给终端用户查看。而 __repr__
则应该输出更详细的信息,主要用于调试和开发。