基础语法定义父类基类封装通用的基础功能class父类名:def__init__(self,通用参数):# 通用的初始化代码self.通用属性通用参数def通用方法1(self,参数):# 通用的功能代码return处理结果def通用方法2(self,参数):# 通用的功能代码return处理结果定义子类派生类继承父类的所有功能只写自己的特殊功能class子类名(父类名):def__init__(self,通用参数,子类特殊参数):# 先调用父类的初始化方法继承父类的所有属性super().__init__(通用参数)# 子类自己的特殊初始化代码self.子类特殊属性子类特殊参数# 子类自己的特殊方法父类里没有的def子类特殊方法(self,参数):# 特殊的功能代码return处理结果⚠️ 关键注意点1.定义子类的时候在类名后面的小括号里写父类名就表示继承这个父类2.子类的__init__方法里必须先调用super().init()调用父类的初始化方法才能继承父类的所有属性3.子类可以直接调用父类里的所有方法就像自己写的一样不用再重复写# -*- coding: utf-8 -*- Created on 2026/4/23 14:05 creator er_nao File Day_08.py Description 代码复用写法 知识点1类的继承复用 基础语法 # 定义父类基类封装通用的基础功能 class 父类名: def __init__(self, 通用参数): # 通用的初始化代码 self.通用属性 通用参数 def 通用方法1(self, 参数): # 通用的功能代码 return 处理结果 def 通用方法2(self, 参数): # 通用的功能代码 return 处理结果 # 定义子类派生类继承父类的所有功能只写自己的特殊功能 class 子类名(父类名): def __init__(self, 通用参数, 子类特殊参数): # 先调用父类的初始化方法继承父类的所有属性 super().__init__(通用参数) # 子类自己的特殊初始化代码 self.子类特殊属性 子类特殊参数 # 子类自己的特殊方法父类里没有的 def 子类特殊方法(self, 参数): # 特殊的功能代码 return 处理结果 ⚠️ 关键注意点 1.定义子类的时候在类名后面的小括号里写父类名就表示继承这个父类 2.子类的__init__方法里必须先调用super().__init__()调用父类的初始化方法才能继承父类的所有属性 3.子类可以直接调用父类里的所有方法就像自己写的一样不用再重复写 # 定义父类基础工具类封装所有通用的基础功能classNLPBaseTool:# 父类初始化通用的标点符号列表def__init__(self):self.default_punctuations[。,,,,,,、]# 父类通用方法1文本清洗defclean_text(self,input_text,keep_punctuationsFalse,keep_spaceFalse):clean_textinput_text.strip()ifnotkeep_punctuations:forpucinself.default_punctuations:clean_textclean_text.replace(puc,)ifnotkeep_space:clean_textclean_text.replace( ,)returnclean_text# 父类通用方法2词频统计defcount_word(self,input_text):clean_textself.clean_text(input_text)word_count{}forwordinclean_text:ifwordnotinword_count:word_count[word]1else:word_count[word]word_count[word]1returnword_count# 定义子类1关键词提取工具类继承父类的所有基础功能classkeywordExtractor(NLPBaseTool):# 子类初始化先调用父类的初始化继承所有属性def__init__(self):super().__init__()# 子类自己的特殊方法提取TopN关键词父类里没有的defget_top_keywords(self,input_text,top_n3):# 直接调用父类的词频统计方法不用再重复写word_countself.count_word(input_text)# 按词频从多到少排序sorted_word_countsorted(word_count.items(),keylambdax:x[1],reverseTrue)top_wordssorted_word_count[:top_n]returntop_words# 定义子类2句子拆分工具类继承父类的所有基础功能classSentimentClassifier(NLPBaseTool):# 子类初始化先调用父类的初始化def__init__(self):super().__init__()defsplit_sentence(self,input_text):clean_textself.clean_text(input_text,keep_punctuationsTrue,keep_spaceTrue)# 按句号、感叹号、问号拆分句子separators[。,,,]sentance_list[clean_text]forsepinseparators:new_list[]forsentinsentance_list:new_list.extend(sent.split(sep))sentance_listnew_list sentance_list[s.strip()forsinsentance_listifs.strip()!]returnsentance_list# ---------------------- 调用示例子类直接复用父类的所有功能 ----------------------text自然语言处理NLP是人工智能中非常重要的方向。NLP的前景非常好我想学习NLP的基础知识# 1. 使用关键词提取子类extractorkeywordExtractor()# 直接调用父类的文本清洗方法clean_resultextractor.clean_text(text)print(清洗后的文本,clean_result)# 调用子类自己的提取Top关键词方法top_keywords_3extractor.get_top_keywords(text,top_n3)print(Top3关键词,top_keywords_3)# 2. 使用句子拆分类splitterSentimentClassifier()# 直接调用父类的词频统计方法word_countsplitter.count_word(text)print(词频统计结果,word_count)# 调用子类自己的拆分句子方法sentance_listsplitter.split_sentence(text)print(拆分后的句子列表,sentance_list)