# 片段1
import time
s =time.time()
print(time.time())
print(time.time())
print(time.time())
print(time.time())
print(time.time())
print(format(time.time()-s,'f'))
# 片段2
def get_time():
import time
print(time.time())
s = time.time()
get_time()
get_time()
get_time()
get_time()
get_time()
print(format(time.time()-s,'f'))
两者性能上有什么差异?有什么区别?
本地python3输出
1538428458.134572
1538428458.134617
1538428458.134623
1538428458.134628
1538428458.1346319
0.000066
1538428458.1346502
1538428458.134655
1538428458.13466
1538428458.134665
1538428458.13467
0.000027
我了解的不够深入,但是你这个测试代码不能反应问题,我自己试了一下
import
的逻辑据我所知是这样的py2的简单测试
逆序再来一次
可以看到,哪怕是在函数内部作用域先进行import,再在外部import,结果还是一样没有进行重复引入.
写成循环重复调用
impt
,得到的结果也是一样,每次打印的都是同一个内存地址.然后我们试一下跨文件:
贴图片了,可以看到不同文件没什么影响.
通过这个测试我认为,import操作相当于将包引入到解释器当中,下次引入第一步是检查而不是重新引入,这在python交互模式的时候也可以感受到,比如numpy这样大一些的包,第一次引入的时候有一个可以感受到的延迟,再次引入就没有了,因为这次检测到这个包已经存在于这里了,只需要复制内存地址就可以了.
以上