我正在尝试测量代码不同部分的执行时间,每部分几行。我使用 %%timeit 执行此操作,但是在执行单元格后,我发现为单元格中的变量计算的值不会保留在下一个单元格的内存中,如下例所示。
为什么会出现这种情况?有没有办法保留这些值,以便我可以在程序的其余部分使用它们?
In [1]: %%timeit
...: dog='dog'
100000000 loops, best of 3: 16.2 ns per loop
In [2]: print (dog)
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-16-c61686862278> in <module>()
----> 1 print (dog)
NameError: name 'dog' is not defined
Run Code Online (Sandbox Code Playgroud)
这对我来说听起来似乎是一个微不足道的问题(或者我期望的默认行为),但我无法在网上找到任何信息,所以我希望有人可以提供帮助。
例如,我有一个Python模块和一个iPython模块,
cmd.py
import sys
print sys.argv
Run Code Online (Sandbox Code Playgroud)
test.ipynb
for i in range(5):
%run cmd.py i
Run Code Online (Sandbox Code Playgroud)
当我运行test.ipynb时,它只是多次打印['cmd.py','i'].如何将i的值而不是'i'作为命令行参数传递?