起步
def use_in(d, key):
if key in d:
return d[key]
return None
def use_try(d, key):
try:
return d[key]
except KeyError:
pass
return None
性能比较
import timeit
def use_in(d, key):
if key in d:
return d[key]
return None
def use_try(d, key):
try:
return d[key]
except KeyError:
pass
return None
cache = {}
for i in range(100):
cache[i] = True
perf_dict = {
'in: hit': min(timeit.repeat(lambda: use_in(cache, 50))),
'in:not hit': min(timeit.repeat(lambda: use_in(cache, 150))),
'try: hit': min(timeit.repeat(lambda: use_try(cache, 50))),
'try:not hit': min(timeit.repeat(lambda: use_try(cache, 150))),
}
print(perf_dict)
{
'in: hit': 0.32121160000000004,
'in:not hit': 0.2666487000000002,
'try: hit': 0.27908409999999995,
'try:not hit': 0.5742989999999999
}
标准库里会用哪种方法呢
总结