Python基础课:测试type 和 isinstance 那个的速度更快,,废话不说,直接上源码
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 那个的速度更快
评论关闭