最近同事聊起所谓面向对象,这里使用Python实现一个搜索引擎的小功能,来作为对面向对象的理解。相关概念网上很多,这里不再多复述,先从代码走起,再代入概念。
代码功能:根目录下有1.txt 2.txt 3.txt 三个文件,实现输入文件名,返回是否有该文件及该文件的文件大小代码要实现的功能很简单,这里引用类的写法是为了作为解释面向对象的例子,简单功能可以无需这样写,如若是工程开发,这样写的好处在于通过面向对象的设计,定义好了各功能接口,模块化开发,实现高内聚低耦合。
#SearchEnginebase定义好了各功能接口,通过继承即可对功能进行使用或者再开发 class SearchEnginebase : def __init__ : pass def add_corpus : self . process_corpus def process_corpus : raise Exception def search : raise Exception #该函数是为了后续调用类使用 def main : for file_name in os . listdir ): file_size = str + ' ' + file_name )) + ' byte' search_engine . add_corpus while True : query = input results = search_engine . search if len > 0 : print else : print #继承父类,获得功能接口 class SimpleEngine : def __init__ : super . __init__ self . _id_to_texts = {} def process_corpus : self . _id_to_texts [ id ] = file_size def search : results = {} for k , v in self . _id_to_texts . items : if query in k : results [ k ] = v return results search_engine = SimpleEngine main #########输出########## 1. txt file in path . file size are : 193 byte 100. txt file not in path .
- 面向对象几个特征:
- 几个概念概念大致的对应理解:
以上均为了便于有对概念直观理解,当然并不严谨。
学习交流,有任何问题还请随时评论指出交流。