forked from p46318075/CodePattern
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
33 lines
834 B
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) |