Jupyter Notebook使用注意
2018-11-16 本文已影响109人
平仄_pingze
重复运行Cell
Jupyter Nodebook的Code Cell可以重复运行,以重复执行代码。
值得注意的是,这并不会清除上次运行时的变量,而是单纯的在该Cell的上下文位置再执行一边代码。
所以,如果使用node.js内核,会发现,如果重复执行Cell类似const a = 1;
会直接报错,因为常量不能重复声明。
Python的变量使用前不须特别声明,可以重复执行不会报错。module也可以重复import。
但是,重复import module时,只有第一次会有效执行,之后的import操作会被忽略。
这就导致运行时修改了被import的module,重复执行import的Cell,并不能更新引用的代码。而且,由于traceback打印时会追踪最新的代码,会让人误以为执行的代码已经变了。
所以,在Jupyter IPython使用时,如果更改了被import的module,必须执行restart操作来保证有效重新import。