在python中使用timeit的NameError
当我尝试运行这些代码时,我得到了在python中使用timeit的NameError,python,timeit,Python,Timeit,当我尝试运行这些代码时,我得到了namererror。“全局名称j未定义”。我怎样才能修好它 def test(j): for i in range(j): j = i**2 if __name__=='__main__': from timeit import Timer j = 30 t = Timer("test(j)","from __main__ import test") print( t.timeit(j)) Timer不
namererror
。“全局名称j未定义”。我怎样才能修好它
def test(j):
for i in range(j):
j = i**2
if __name__=='__main__':
from timeit import Timer
j = 30
t = Timer("test(j)","from __main__ import test")
print( t.timeit(j))
Timer
不知道j
。您需要执行类似于“test(%d)”%j
(或从\uuuu main\uuuu导入j
,或将j
的定义也放入字符串中)
另外,timeit
的参数与test
函数的参数不同(因此,j
的不同用法可能不是您应该做的或想要表达的意思)。timeit参数给出测试函数的执行次数
p、 请注意,您需要缩进问题中的任何代码,以将其格式化
p、 另外,这里曾经有一条评论说不使用来自uuu main_uuuuimport的
,但这确实有效 定时器
不知道j
。您需要执行类似于“test(%d)”%j
(或从\uuuu main\uuuu导入j
,或将j
的定义也放入字符串中)
另外,timeit
的参数与test
函数的参数不同(因此,j
的不同用法可能不是您应该做的或想要表达的意思)。timeit参数给出测试函数的执行次数
p、 请注意,您需要缩进问题中的任何代码,以将其格式化
p、 另外,这里曾经有一条评论说不使用来自uuu main_uuuuimport的,但这确实有效 为什么在许多不同的上下文中继续使用变量j
?from\uuuu main\uuu导入测试,j
起作用,并且您有太多j
为什么在许多不同的上下文中继续使用变量j
?from\uu main\uu导入测试,j
有效,而您有太多的j
sfrom\uuuuu main\uuuu导入测试
有效,请尝试。是首选吗?不知道,但我希望您能解释一下原因。from\uuuuuu main\uuuuu import test
works,试试看。是首选吗?不知道,但我希望你能解释为什么不能。