面试题答案
一键面试class Book:
def __init__(self, title, price):
self.title = title
self.price = price
def __gt__(self, other):
return self.price > other.price
def __lt__(self, other):
return self.price < other.price
def __eq__(self, other):
return self.price == other.price
在实际项目开发中:
- 排序场景:
- 当需要对一个包含多个
Book
实例的列表进行排序时,使用内置的sorted()
函数或者列表的sort()
方法,由于重载了比较运算符,就可以直接按照价格对书籍进行升序或降序排序。例如:
- 当需要对一个包含多个
books = [Book('Python 入门', 50), Book('数据结构', 80), Book('算法导论', 100)]
sorted_books = sorted(books) # 按照价格升序排序
- 这种方式使得代码简洁明了,无需额外编写复杂的比较函数。
- 筛选场景:
- 在进行数据筛选时,例如从一个包含众多书籍的列表中筛选出价格高于某一特定值的书籍。由于重载了比较运算符,可以直接使用简单的条件判断。例如:
books = [Book('Python 入门', 50), Book('数据结构', 80), Book('算法导论', 100)]
expensive_books = [book for book in books if book > Book('', 80)]
- 这样可以很方便地根据价格条件筛选出符合要求的书籍,提高了代码的可读性和开发效率。