1 __repr__方法
__repr__是Python类中的一个特殊方法,全称为“representation”,即表示法。当你在交互式环境中直接输入一个对象的名称,或者使用repr()函数时,Python就会调用这个方法来返回一个字符串,该字符串旨在提供对象的“官方”表示形式,它应该是一段可读性强且尽可能明确地表示对象内容的代码片段,理论上,这个字符串应该是可以用来重新创建原始对象的。
不使用__repr__方法时
class Book:
def __init__(self, title, author, year):
self.title = title
self.author = author
self.year = year
# 创建一个Book示例
my_book = Book('金瓶梅','未知',-475)
# 直接打印这个对象
print(my_book)
print(repr(my_book))
结果如下:
使用__repr__
class Book:
def __init__(self, title, author, year):
self.title = title
self.author = author
self.year = year
def __repr__(self):
return f"Book('{self.title}','{self.author}',{self.year})"
# 创建一个Book示例
my_book = Book('金瓶梅','未知',-475)
# 直接打印这个对象
print(my_book)
print(repr(my_book))
结果如下:
在上面的例子中,我们定义了Book类,并实现了__repr__方法。当我们打印my_book对象时,输出的是一个构造该对象的字符串,这正是__repr__所返回的内容。这样的输出不仅展示了对象的关键信息,而且遵循了“可被解析以重构对象”的原则。
2 未完待续