from cppy.cp_util import * # # 框架类 # class TFFlowAll: def __init__(self, func): self._funcs = [func] def bind(self, func): self._funcs.append(func) return self def execute(self): def is_callable(obj): """Check if an object is callable.""" return hasattr(obj, '__call__') def call_if_possible(obj): """Call the object if it's callable, otherwise return it as is.""" return obj() if is_callable(obj) 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)) print(call_if_possible(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 '\n'.join(f"{word} - {freq}" for word, freq in word_freqs[:10]) return _f if __name__ == "__main__": TFFlowAll(get_input)\ .bind(extractwords)\ .bind(frequencies)\ .bind(sort)\ .bind(top10_freqs)\ .execute()