魔术功能时间

时间:2016-03-07 11:22:54

标签: python ipython timeit magic-function

我正在使用神奇的%% timeit函数来获取执行某些代码所需的时间。困扰我的是,当我运行%% timeit时,我没有得到结果。对于实例:

a=5
b=3

%%timeit
c = a + b

现在如果我想在下一个单元格中使用c,我得到c尚未定义。

print(c)
>>>NameError: name 'c' is not defined

你能帮助我理解为什么会发生这种情况,为什么在那个特定的单元格中使用魔法%% timeit函数时不能存储?

2 个答案:

答案 0 :(得分:3)

当您使用%%timeit计算代码时,您提供的代码将在单独的命名空间中执行,因此其效果对您的环境不可见。

答案 1 :(得分:0)

  

细胞模式:

 modelBuilder.Entity<Item>().HasIndex(b => b.Name).IsUnique();
     

在单元格模式下,第一行中的语句用作设置代码   (已执行但未定时)并且单元的主体是定时的。细胞   body可以访问在设置代码中创建的任何变量。

     

https://ipython.org/ipython-doc/3/interactive/magics.html#magic-timeit

您在单元格模式下执行,该行只是设置代码;这意味着它实际上没有定时,其结果只能通过它后面的单元代码访问。