gpt4 book ai didi

python - 如何在timeit范围内更新代码?

转载 作者:太空宇宙 更新时间:2023-11-03 16:45:36 24 4
gpt4 key购买 nike

这就是我正在做的事情:

In [9]: setup = '''
import my_module
generator = my_module.any_func(1, 'two')
'''

In [10]: timeit.timeit('list(generator)', setup=setup, number=1000)
Out[10]: 4.6911962032318115

如果我更改my_module并运行

In [11]: timeit.timeit('list(generator)', setup=setup, number=1000)

同样,timeit 无法识别这些更改。目前我关闭了 IPython 并再次执行所有这些操作。

是否有可能更新timeit的范围?像重新加载之类的东西?

最佳答案

同时,我使用这个“解决方法”避免了 python shell 的不断重新启动:

>>> import my_module
>>> setup = '''
>>> from __main__ import my_module
>>> generator = my_module.any_func
>>> '''

通过在 python shell 的 __main__ 范围内导入 my_module 并在 timeit 范围内引用它,可以重新加载更改在 __main__ 范围内通过

>>> reload(my_module)

这样做timeit将使用重新加载的模块。

我尝试在 timeit 的设置中执行 reload(my_module),但这会引发 NameError。一方面,timeit 的作用域似乎是永久的,但另一方面,通过 reload 访问该作用域是不可能的。这是一种黑魔法……

关于python - 如何在timeit范围内更新代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36337921/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com