[Python项目实战]利用面向对象思想实现搜索引擎
搜索引擎是一个非常常见和重要的应用领域,在这个Python项目实战中,我们将利用面向对象的思想来实现一个简单的搜索引擎。
首先,我们需要定义一个SearchEngine类。这个类应该具有以下功能:
- 通过传入一个搜索字符串,返回搜索结果。
- 支持添加和删除搜索结果。
- 支持保存和加载搜索结果。
下面是一个简单的SearchEngine类的实现:
import os
class SearchEngine:
def __init__(self):
self.results = []
def search(self, query):
search_results = []
for result in self.results:
if query in result:
search_results.append(result)
return search_results
def add_result(self, result):
self.results.append(result)
def remove_result(self, result):
self.results.remove(result)
def save_results(self, filename):
with open(filename, 'w') as f:
for result in self.results:
f.write(result + '\n')
def load_results(self, filename):
if os.path.exists(filename):
with open(filename, 'r') as f:
self.results = [line.strip() for line in f]
然后,我们可以使用这个SearchEngine类来实现一个简单的命令行搜索引擎交互界面:
def main():
search_engine = SearchEngine()
while True:
print("1. Search")
print("2. Add result")
print("3. Remove result")
print("4. Save results")
print("5. Load results")
print("6. Quit")
choice = input("Enter your choice: ")
if choice == '1':
query = input("Enter query: ")
results = search_engine.search(query)
print("Search results:")
for result in results:
print(result)
elif choice == '2':
result = input("Enter result: ")
search_engine.add_result(result)
elif choice == '3':
result = input("Enter result to remove: ")
search_engine.remove_result(result)
elif choice == '4':
filename = input("Enter filename to save results: ")
search_engine.save_results(filename)
elif choice == '5':
filename = input("Enter filename to load results: ")
search_engine.load_results(filename)
elif choice == '6':
break
else:
print("Invalid choice")
if __name__ == '__main__':
main()
这样,我们就实现了一个简单的搜索引擎。用户可以通过命令行界面进行搜索、添加、删除、保存和加载搜索结果。
当然,这只是一个简单的搜索引擎的实现,实际的搜索引擎要复杂得多。但是这个项目可以作为学习和理解面向对象思想的良好例子。希望对你有帮助!