Python timeit模块导致无限循环
考虑一下Python3代码:Python timeit模块导致无限循环,python,profiling,Python,Profiling,考虑一下Python3代码: def classic_fibonacci(限制:int)->列表[int]: nums=[] 当前,nxt=0,1 当电流
def classic_fibonacci(限制:int)->列表[int]:
nums=[]
当前,nxt=0,1
当电流<极限时:
当前,nxt=nxt,nxt+curr
nums.append(当前)
返回nums
def classic_fib_profiling():
对于经典斐波那契中的n(极限=1000):
打印(n,结束=',')
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
导入时间信息
timeit.timeit(“classic\u fib\u profiling()”,setup=“from\uuu main\uuuu导入classic\u fib\u profiling”)
调用classic\u fib\u profiling()
会像预期的那样返回一个Fibonacci数列表,限制为limit
参数
另一方面,使用
timeit.timeit
调用它会导致解释器进入无限循环,永不停止。我无法通过调试或搜索文档(等等)找到解决方案。任何帮助都将不胜感激。这不是无限循环。它将运行相同的函数number
次(默认值:number=1000000
)。只需等待它完成,或者提供循环应该运行的次数。检查timeit.timeit
函数的参数
模块timeit中有关函数timeit的帮助:
timeit(stmt='pass',setup='pass',timer=,number=1000000,globals=None)
创建Timer对象和调用timeit方法的便利函数
将线路从
>>> timeit.timeit("classic_fib_profiling()", setup="from __main__ import classic_fib_profiling")
到
然后观察:)好吧,只是我跛脚了:(我应该更仔细地阅读文档!
>>> timeit.timeit("classic_fib_profiling()", setup="from __main__ import classic_fib_profiling", number=1)