首页 > 解决方案 > 类方法的 timeit.timeit() 出错

问题描述

下面是我的代码,我为该类定义了两个方法,我想查看这两个函数的执行时间以比较哪个函数更快,我想用 timeit.timeit() 来做。我像这样尝试过,我在设置中创建了类的实例,并在我调用方法的语句中。但我收到此错误:NameError: name 'txt_tokenize' is not defined

class txt_tokenize:
def txt_regex(self, filename):     
    import re
    text = (open(filename).read()).lower()
    text= re.sub(r'\s',r'\n',text)                 
    text= re.sub(r'\n{2,}','\n', text)
    text= re.sub(r'[^a-zA-Z\n]',"", text)           
    text= sorted(set(text.split("\n")))
    text= " ".join(text).split()
    return text
    
def txt_split_pd(self,filename):
    import pandas as pd
    text = (open(filename).read()).lower()
    text= pd.Series(text.split())
    text= text.str.replace(r'[^a-zA-Z\n]','',regex=True)
    text=list(text.sort_values(axis=0, ascending=True).dropna().unique())
    text= " ".join(text).split()
    return text
        
    
Setup1='''reg= txt_tokenize()'''
Setup2=''''pd_txt= txt_tokenize()'''

Statement1='''reg.txt_regex("E:\Machine Learning\Dataset Mcbeth.txt")'''
Statement2= ''''pd_txt.txt_split_pd("E:\Machine Learning\Dataset Mcbeth.txt")'''

if __name__=="__main__":
    import timeit
    time1= timeit.timeit(stmt= Statement1, number= 10000, setup= Setup1)
    time2= timeit.timeit(stmt= Statement2, number= 10000, setup= Setup2)

标签: pythonclasstimeit

解决方案


推荐阅读