from cppy.cp_util import * # # 框架类 # class TFFlowcls: def __init__(self, func): self._funcs = [func] def bind(self, func): self._funcs.append(func) return self def execute(self): def call_if_possible(obj): """Call the object if it's callable, otherwise return it as is.""" return obj() if hasattr(obj, '__call__') else obj # Initialize the value to a no-op lambda function value = lambda: None for func in self._funcs: value = call_if_possible(func(value)) # # 工具函数 # def get_input(arg): def _f(): return testfilepath return _f def extractwords(path_to_file): def _f(): return extract_file_words(path_to_file) return _f def frequencies(word_list): def _f(): return get_frequencies(word_list) return _f def sort(word_freq): def _f(): return sort_dict(word_freq) return _f def top10_freqs(word_freqs): def _f(): return print_word_freqs( word_freqs ) return _f if __name__ == "__main__": TFFlowcls(get_input)\ .bind(extractwords)\ .bind(frequencies)\ .bind(sort)\ .bind(top10_freqs)\ .execute()