>-6ren">
gpt4 book ai didi

python - timeit 在 python manage.py shell 中不工作

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

我必须找到在 django 项目中运行查询所花费的时间,即 python manage.py shell

代码:

>>> import timeit
>>> d = {"a":1, "b":2}
>>> def a1():
... for i in d:
... a = i, d[i]
...
>>> a1()


>>> print "Time 1:", timeit.timeit('a1()', 'from __main__ import a1 as a1')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/lib64/python2.6/timeit.py", line 227, in timeit
return Timer(stmt, setup, timer).timeit(number)
File "/usr/lib64/python2.6/timeit.py", line 193, in timeit
timing = self.inner(it, self.timer)
File "<timeit-src>", line 3, in inner
ImportError: cannot import name a1
Time 1: >>>

这在 python manage.py shell 中不起作用

但这是工作文件,我在 py 文件中编写代码并运行我的命令行。

from __main__ import a1 as a1 有问题

最佳答案

timeit 在不同的上下文中执行,因此它无法访问您导入/定义的符号。

为此,您可以:

使用其构造函数的setup参数。

timeit.timeit("a1()", setup="from __main__ import a1 as a1")

使用其构造函数的globals参数(Python >= 3.5)传递全局命名空间。

timeit.timeit("a1()", globals=globals())

参见 doc了解更多详情。

关于python - timeit 在 python manage.py shell 中不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33938810/

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