# !coding=utf-8
class A:
def __init__(self):
self.dic={'a':1,'b':2,'c':3,'d':4,'e':5}
def dicIndInClass(obj,k):
for i in range(1000000):
a=obj.dic[k]
def dicInd(d,k):
for i in range(1000000):
a=d[k]
obj=A()
k='e'
d={'a':1,'b':2,'c':3,'d':4,'e':5}
import time
t0=time.time()
for i in range(10):
dicInd(d,k)
t1=time.time()
for i in range(10):
dicIndInClass(obj,k)
t2=time.time()
print('直接传入字典',t1-t0)
print('对象中的字典',t2-t1)
结果:
直接传入字典 0.46782588958740234
对象中的字典 0.7587230205535889
原因我想是对象的属性查找实际上也相当于是查找了一次字典,因此时间大约翻了一番。