from cppy.cp_util import * from collections import Counter # 定义一个带计数器的元类 class CounterMetaclass(type): def __new__(mcs, name, bases, attrs): attrs['_counter'] = Counter() return super().__new__(mcs, name, bases, attrs) # 基于元类创建类 class Word(metaclass=CounterMetaclass): def __init__(self, word): self.word = word self._counter[self.word] += 1 @classmethod def get_word_freqs(cls, n) -> Counter: return cls._counter.most_common(n) for word in extract_file_words(testfilepath): Word(word) print_word_freqs(Word.get_word_freqs(10)) ''' 常用于将依赖项(如服务或配置)自动注入到类中。 '''