大量使用exec的情况下,会不会影响运行速度?
代码测试一下
import time
t=time.time()
s="""
def fb(n:int)->int:
a=1
b=1
for i in range(n):
a,b=b,a+b
return a
"""
for i in range(1000):
exec(s)
fb(10000)
print("用时:",time.time()-t)#2.0541086196899414
如果不使用exec的情况下
import time
t=time.time()
def fb(n:int)->int:
a=1
b=1
for i in range(n):
a,b=b,a+b
return a
for i in range(1000):
fb(10000)
print("用时:",time.time()-t)#1.992508888244629
性能有大概%5的差距,这应该是是将字符串序列化为代码的损耗,可以接受