当前位置: 代码迷 >> python >> NameError在python中使用timeit
  详细解决方案

NameError在python中使用timeit

热度:63   发布时间:2023-06-16 14:00:14.0

尝试运行此代码时出现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))

Timer不知道j 你需要做一些像"test(%d)" % j (或from __main__ import j或放的定义j里面的字符串,太)。

而且, timeit的参数与test函数的参数不同(因此j的不同用法可能不是您应该做的或不想要的)。 timeit参数给出测试功能的执行次数。

ps注意,您需要缩进问题中的任何代码以将其格式化

pps这里曾经有一段评论,关于不使用from __main__ import但这确实有效!