问题描述
尝试运行此代码时出现NameError
。“未定义全局名称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))
1楼
Timer
不知道j
。
你需要做一些像"test(%d)" % j
(或from __main__ import j
或放的定义j
里面的字符串,太)。
而且, timeit
的参数与test
函数的参数不同(因此j
的不同用法可能不是您应该做的或不想要的)。
timeit参数给出测试功能的执行次数。
ps注意,您需要缩进问题中的任何代码以将其格式化
pps这里曾经有一段评论,关于不使用from __main__ import
但这确实有效!