摘要:Python 中的 __repr__ 方法旨在提供对象的明确字符串表示形式,理想情况下,该表示可用于使用 eval 函数重新创建对象。它对于调试非常有用,因为它清楚地显示了对象的内部状态。此函数在调试或记录信息时特别有用,因为它可以深入了解数据类型和值。
I. format (value[, format_spec])
print(format(3.14159, ".2f")) # Output: '3.14'II. repr(对象)
Python 中的 __repr__ 方法旨在提供对象的明确字符串表示形式,理想情况下,该表示可用于使用 eval 函数重新创建对象。它对于调试非常有用,因为它清楚地显示了对象的内部状态。此函数在调试或记录信息时特别有用,因为它可以深入了解数据类型和值。语法:
让我们创建一个简单的 Book 类来说明 __repr__ 的用法,我们还将介绍 __eq__ 以演示如何根据 Book 对象的属性来比较 Book 对象。
class Book: def __init__(self, title, author, isbn): self.title = title self.author = author self.isbn = isbn def __repr__(self): return f"Book(title={self.title!r}, author={self.author!r}, isbn={self.isbn!r})" def __eq__(self, other): if isinstance(other, Book): # Consider books equal if they have the same ISBN return self.isbn == other.isbn return False属性:
title:书名。author:书籍的作者。isbn: 本书的 ISBN,唯一。__repr__方法:
此方法返回一个字符串,该字符串看起来像是创建 Book 对象的调用。使用 !r 确保以适合eval 的方式表示值,从而提供一种清晰的方式来显示对象。让我们创建一些 book 实例,看看 __repr__ 和 __eq__ 在实践中是如何工作的。
# Create two book objects book1 = Book("1984", "George Orwell", "978-0451524935") book2 = Book("Nineteen Eighty-Four", "George Orwell", "978-0451524935") # Same ISBN book3 = Book("Brave New World", "Aldous Huxley", "978-0060850524") # Use repr to get the string representation print(repr(book1)) # Output: Book(title='1984', author='George Orwell', isbn='978-0451524935') # Check if books are equal print(book1 == book2) # Output: True, because they have the same ISBN print(book1 == book3) # Output: False, because their ISBNs are different # Showing that repr can recreate the object book_recreated = eval(repr(book1)) print(book_recreated) # Output: Book(title='1984', author='George Orwell', isbn='978-0451524935') print(book_recreated == book1) # Output: True, recreated object is equal to the original来源:自由坦荡的湖泊AI
免责声明:本站系转载,并不代表本网赞同其观点和对其真实性负责。如涉及作品内容、版权和其它问题,请在30日内与本站联系,我们将在第一时间删除内容!