Python基础课:测试type 和 isinstance 那个的速度更快,,废话不说,直接上源码


废话不说,直接上源码

 1 #装饰器 2 import time 3 def runtime(func): 4     def inner_func(*args, **kwargs): 5         startTime = time.time()  6         res = func(*args) 7         print(‘run time:{}‘.format(time.time()- startTime)) 8         return res 9     return inner_func10 11 #测试type函数12 def test_type(*args, **kwargs):13     types = [str,int,float,bool,tuple,list,set,dict]  #定义一个常用类型列表14     type_dict= {}                                     #定义一个返回集类型字典15     if args:                                          #确定是否有参数16         for arg in args:                              #遍历参数17             for t in types:                           #遍历类型18                 if type(arg) == t:                    #用type函数匹配类型19                     type_dict[str(arg)] = t           #把arg转成键名,t作为键值放入字典20                     break                             #中断循环21     return type_dict22 23 #测试isinstance函数24 def test_isinstance(*args, **kwargs):25     types = [str,int,float,bool,tuple,list,set,dict]26     type_dict= {}27     if args:28         for arg in args:29             for t in types:30                 if isinstance(arg, t) == True:      #用isinstance函数匹配类型31                     type_dict[str(arg)] = t32                     break33     return type_dict34 35 @runtime36 def for_loop_type(*args, **kwargs):37     for i in range(100000):                         #循环调用test_type函数100000次38         test_type(args, kwargs)39 40 @runtime41 def for_loop_isinstance(*args, **kwargs):42     for i in range(10000):                          #循环调用test_isinstance函数100000次43         test_isinstance(args, kwargs)44         45         46 #for_loop_type(1,2,3,4,5,6,7,8,9,2,0,True,(‘a‘,‘b‘,‘c‘),{‘a‘,‘b‘,‘c‘},[‘a‘,‘b‘,‘c‘],{‘name‘:‘tom‘,‘age‘:20})47 #for_loop_isinstance(1,2,3,4,5,6,7,8,9,2,0,True,(‘a‘,‘b‘,‘c‘),{‘a‘,‘b‘,‘c‘},[‘a‘,‘b‘,‘c‘],{‘name‘:‘tom‘,‘age‘:20})

小伙伴自己去测试吧,我测完的数据显示,isinstance比type效率高的不是一个级别的,测完你心里就有数了

Python基础课:测试type 和 isinstance 那个的速度更快

评论关闭