當前位置:成語大全網 - 書法字典 - python3如何測試type和isinstance哪個更快?

python3如何測試type和isinstance哪個更快?

1 #裝飾工

2導入時間

3 def運行時(func):

4 def inner_func(*args,**kwargs):

5 startTime = time.time()

6 res = func(*args)

7打印('運行時間:{} '。format(time.time()- startTime))

8返回結果

9返回inner_func

10

11 #測試類型功能

12 def test_type(*args,**kwargs):

13types = [str,int,float,bool,tuple,list,set,dict] #定義壹個常用類型列表。

14 type_dict= {} #定義返回集類型的字典。

15 if args: #確定是否有參數。

16 for args in args:# Traversal參數

17對於類型中的t:#遍歷類型

18 if type(arg) == t: #用類型函數匹配類型。

19 type_dict[str(arg)]

20 break #中斷循環

21返回類型_字典

22

23 #測試iSense功能

24 def test_isinstance(*args,**kwargs):

25個類型= [str,int,float,bool,tuple,list,set,dict]

26 type_dict= {}

27 if參數:

28對於args中的arg:

29對於t in類型:

30 if isinstance(arg,t) == True: #用isinstance函數匹配類型。

31 type_dict[str(arg)] = t

32休息

33返回類型_字典

34

35 @運行時

36 def for_loop_type(*args,**kwargs):

37對於範圍內的I(100000):#調用test_type函數100000次。

38 test_type(args,kwargs)

39

40 @運行時

41 def for _ loop _ is instance(* args,**kwargs):

42對於範圍內的I(10000):#調用test_isinstance函數100000次。

43 test_isinstance(args,kwargs)

四十四

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})