You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 lines
834 B

9 months ago
import time
import cppy.cp_util as util
# 工具函数
def extract_words(path_to_file):
return util.extract_file_words(path_to_file)
def frequencies(word_list):
return util.get_frequencies(word_list)
def sort(word_freq):
return util.sort_dict(word_freq)
# 闭包
def profile(f):
def profilewrapper(*arg, **kw):
start_time = time.time()
ret_value = f(*arg, **kw)
elapsed = time.time() - start_time
print(f"{f.__name__} took {elapsed} s")
return ret_value
return profilewrapper
# 装饰
tracked_functions = [extract_words, frequencies, sort]
for func in tracked_functions:
globals()[func.__name__] = profile(func) # 自省
if __name__ == "__main__":
word_freqs = sort( frequencies(extract_words( util.testfilepath )) )
util.print_word_freqs(word_freqs)